sql – 在OPENROWSET查询中使用变量 - 代码日志

sql – 在OPENROWSET查询中使用变量

我有这个查询的麻烦:

SELECT * 
FROM OPENROWSET(
    'SQLNCLI',
    'DRIVER={SQL Server};',
    'EXEC dbo.sProc1 @ID = ' + @id 
 )

给出错误:

Incorrect syntax near ‘+’.

任何人知道为什么我得到这个错误?

如Scott所建议的,您不能在OPENROWSET中使用表达式。尝试创建一个动态sql来传递参数

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)
http://stackoverflow.com/questions/13831472/using-a-variable-in-openrowset-query

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:sql – 在OPENROWSET查询中使用变量