带参数的SQL链接服务器查询

时间:2011-08-26 09:14:21

标签: sql linked-server

我需要从SQL链接服务器&中选择值。把它变成loacal变量

这是我到目前为止所写的:

DECLARE @SQLQUERY AS VARCHAR(1000)
DECLARE @FINALQUERY AS VARCHAR(1000)
DECLARE @OutVal AS VARCHAR(10)

SET @SQLQUERY = 'SELECT Field1 FROM Table1 WHERE Field2=' + CAST(@var1 AS VARCHAR) 
SET @FINALQUERY = 'SELECT @OutVal=Field1 FROM OPENQUERY(LINKEDSERVER,' + '''' + @SQLQUERY + '''' + ')'
EXEC(@finalQuery)

但这是错误的,因为它没有设置局部变量(@OutVal)。

2 个答案:

答案 0 :(得分:2)

使用带有输出参数的sp_execute_sql代替exec

exec sp_executesql @FinalQuery, N'@OutVal output', @OutVal = @OutVal out

由于sp_executesql需要nvarchar参数,请务必将@FinalQuery的定义更改为nvarchar(max)

答案 1 :(得分:1)

查询字符串中的@OutVal未被识别为变量。使用函数或返回表语句。