Запрос связанного сервера SQL с параметрами - PullRequest
1 голос
/ 26 августа 2011

Мне нужно выбрать значение на связанном сервере SQL и передать его в локальную переменную

Это то, что я написал до сих пор:

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 ]

2 голосов
/ 26 августа 2011

Вместо exec используйте sp_execute_sql с выходным параметром:

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

Поскольку sp_executesql ожидает nvarchar параметров, обязательно измените определение @FinalQuery до nvarchar(max).

1 голос
/ 26 августа 2011

@ OutVal в строке запроса не распознается как переменная.используйте функцию или оператор таблицы возврата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...