当尝试使用包含变量的 OPENROWSET 查询时,许多人会遇到一个常见错误,涉及“' '附近的语法不正确”。要解决此问题,必须了解 OPENROWSET 查询中与变量相关的限制。
与其他数据库函数相比,OPENROWSET 不允许在其参数中直接包含表达式或变量。这意味着您无法使用变量动态构造 OPENROWSET 语句。
要规避此限制,合适的策略是创建动态 SQL 字符串来动态构造 OPENROWSET 语句。然后可以使用 EXEC 语句执行该字符串。示例如下:
Declare @ID int Declare @sql nvarchar(max) Set @ID=1 Set @sql='SELECT * FROM OPENROWSET( ''SQLNCLI'', ''DRIVER={SQL Server};'', ''EXEC dbo.usp_SO @ID =' + convert(varchar(10),@ID) + ''')' -- Print @sql Exec(@sql)
在此示例中,动态 SQL 字符串“@sql”是根据提供的参数“@ID”构造的。随后,EXEC 语句执行此动态 SQL 字符串,从而使用指定的参数值有效执行所需的 OPENROWSET 查询。
以上是如何处理 OPENROWSET 查询中的动态参数?的详细内容。更多信息请关注PHP中文网其他相关文章!