Динамическое указание имен связанных серверов и БД в хранимой процедуре - PullRequest
2 голосов
/ 09 июня 2010

У меня есть запрос в хранимой процедуре, который необходимо выполнить на разных серверах и в базах данных в соответствии с некоторыми параметрами.

Как я могу сделать это, не используя ни exec , ни sp_executesql ?

Я использую SQL Server 2008 .

Спасибо.

ОБНОВЛЕНИЕ

Я 'Мы нашли несколько ссылок

http://www.eggheadcafe.com/software/aspnet/29397800/dynamically-specify-serve.aspx

http://www.sommarskog.se/dynamic_sql.html

Возможно ли использование SYNONYM возможного решения?Если да, то как?

ОБНОВЛЕНИЕ 2

Я забыл упомянуть, что все эти серверы связаны с сервером, на котором хранится хранимая процедура.

ОБНОВЛЕНИЕ 3

OPENROWSET или OPENDATASOURCE также недоступны.Мне нужно решение без построения строки запроса, объединяющего имя сервера, имя схемы, имя базы данных.

Это, безусловно, можно сделать, используя хранимую процедуру if или case, но если у нас 37 вариантов, то это не очень хорошорешение.

Любые другие предложения?

Ответы [ 2 ]

1 голос
/ 11 июня 2010

Никто не хочет отвечать, поэтому я сделаю это сам, просто чтобы принять ответ.

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

0 голосов
/ 09 июня 2010

Помогает ли OPENROWSET или OPENDATASOURCE?

РЕДАКТИРОВАТЬ: если это работает, вы можете изменить базу данных во время выполнения и выполнить запрос, используянастоящее соединениеЯ не вижу другого способа выполнения запроса так, как вы хотите.

Что не так с выполнением запроса с использованием строки, то есть динамического запроса?

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