Динамический запрос связанного сервера - PullRequest
5 голосов
/ 04 августа 2010

Можно ли построить динамический запрос для связанного сервера (и если да, то как)?

Например:

@linkedServer varchar(50)
@var1 varchar(10)
@var2 varchar(10)

select * 
  from openquery(@linkedServer, 
                 'select c1,c2 
                    from t1 
                   where p1 = @var1 
                     and p2= @var2')

Ответы [ 2 ]

4 голосов
/ 04 августа 2010

пример

exec ('select * from openquery(' + @linkedServer + 
', ''select c1,c2 from t1 where p1 = '' + @var1 + ''and p2= '' + @var2 + ''')

обязательно прочитайте Проклятие и благословения динамического SQL для защиты от внедрения SQL

2 голосов
/ 04 августа 2010

см. EXEC () на связанном сервере раздел Проклятие и благословения динамического SQL Эрланда Соммарского

из этой статьи:

Специальная функция, добавленная в SQL 2005, что вы можете использовать EXEC () для запуска сквозные запросы на связанный сервер. Это может быть другой случай SQL Server, но это также может быть Сервер Oracle, база данных Access, Активный каталог или что-то еще. SQL может быть один запрос или последовательность заявлений, и это может быть составлено динамически или быть полностью статичный. Синтаксис прост, как видно по этому примеру:

EXEC ('ВЫБЕРИТЕ СЧЕТ (*) ОТ' + @db +) '.dbo.sysobjects') AT SQL2K

SQL2K - это связанный сервер с было определено с помощью sp_addlinkedserver.

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