在 OPENROWSET 查询中使用变量
尝试在 OPENROWSET 查询中使用表达式通常会导致错误,例如“语法附近不正确” ' '" 这是因为 OPENROWSET 不支持使用表达式来指定参数。
要解决此问题,请使用动态 SQL 创建嵌入参数值的 OPENROWSET 查询字符串。例如,以下代码演示了如何使用动态 SQL 将名为 @ID 的整数参数传递给 OPENROWSET 查询中的存储过程 sProc1:
DECLARE @ID int DECLARE @sql nvarchar(max) SET @ID = 1 SET @sql = 'SELECT * FROM OPENROWSET( ''SQLNCLI'', ''DRIVER={SQL Server};'', ''EXEC dbo.sProc1 @ID = ' + CAST(@ID AS VARCHAR(10)) + ''')' -- Print @sql PRINT @sql -- Execute dynamic SQL EXEC(@sql)
在此示例中,@ID 变量的值使用 CAST 函数将整数值转换为 VARCHAR(10) 动态插入到 OPENROWSET 查询字符串中。然后将生成的动态 SQL 语句打印到控制台并执行。
以上是如何在 OPENROWSET 查询中使用变量?的详细内容。更多信息请关注PHP中文网其他相关文章!