Возможно ли использовать синтаксис INSERT INTO @VARIABLE EXEC () AT LINKED_SERVER?(SQL Server 2005) - PullRequest
2 голосов
/ 04 ноября 2010

Я пытаюсь выполнить запрос на связанном сервере, но мне нужны результаты локально.

DECLARE @test TABLE
(
greeting CHAR(5)
)

INSERT INTO @test
EXEC('select ''hello'' as greeting')

SELECT * FROM @test

Используются EXEC() и INSERT INTO, но, очевидно, запрос выполняется локально.

DECLARE @test TABLE
(
greeting CHAR(5)
)

INSERT INTO @test
EXEC('select ''hello'' as greeting') AT LINKED_SERVER

SELECT * FROM @test

Не работает вообще.

SELECT greeting FROM OpenQuery(LINKED_SERVER,'SELECT''hello'' AS greeting')

Выполняет именно то, что я хочу, но мне нужно использовать динамическую строку, и единственный способ выполнить эту работу - сделать весь запрос огромной строкой и поместить его в EXEC (), чего я не делаю хочу сделать, так как это действительно некрасиво ....

Спасибо за любую помощь!

1 Ответ

2 голосов
/ 12 февраля 2011

Вы можете использовать следующее:

INSERT INTO @test
EXEC('select TOP 1 ''hello'' as greeting FROM LINKED_SERVER.SomeDB.dbo.SysObjects')

И при условии, что вы на самом деле не хотите просто получить слово "привет" ... вы вероятно хотите сделать что-то вродена самом деле, выбирая значение из таблицы, тогда вышеприведенное должно быть еще более вероятным, чем вы хотите.

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