我需要从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)。
答案 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未被识别为变量。使用函数或返回表语句。