@id NVARCHAR(12),
@query NVARCHAR(500),
@paramDef NVARCHAR(100) = N'@id NVARCHAR(12)'
我在下面的这一行有一个语法错误,特别是在@id
set @query = N'select * from OPENQUERY([REMOTESERVER], ''EXEC db.dbo.dwStoredProc_sp ''@id'')'''
然后我使用
exec sp_executesql @query, @paramDef, @id
我希望我的单引号不正确。
答案 0 :(得分:4)
您的上次)
出错了,@id
周围不需要引号。尝试
set @query =
N'select * from OPENQUERY([REMOTESERVER], ''EXEC db.dbo.dwStoredProc_sp ' + @id + ''')'
答案 1 :(得分:1)
您可能不希望将'@id'
作为字符串传递给SP。
这很可能是你的意思:
set @query = N'select * from OPENQUERY([REMOTESERVER], ''EXEC db.dbo.dwStoredProc_sp ' + @id + ''')';
答案 2 :(得分:1)
显然,这是一个报价问题。
但论坛给你的答案并没有给你工具在将来找到问题。
这是一般调试问题。下次打印出动态TSQL。切入并进入另一个窗口。
你会很快找到你的问题。查看鲜为人知的处理指令命令。
非常适合大量的多行声明。
-- Old school output to message window
PRINT @query
-- Cool instruction ? Code in new xml tab.
SELECT @query as [processing-instruction(TSQL)] FOR XML PATH
使用印刷品。
你应该给Juergen一个功劳!