Как эффективно выполнять запросы на нескольких связанных серверах? - PullRequest
1 голос
/ 14 марта 2011

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

Вот что у меня есть:

SELECT @serverName = Name FROM #servers WHERE ID = @minID

EXEC sp_addlinkedserver @server=@serverName, @srvproduct='SQL Server'         
EXEC sp_addlinkedsrvlogin @rmtsrvname = N'lani-radio001', @locallogin = NULL , @useself = N'False', @rmtuser = N'user1', @rmtpassword = N'Password1'

declare @sql varchar(255)
SET @sql = 'SELECT * from [' + @serverName + '].mydb.dbo.mytable'
EXEC (@sql)

Я должен запустить приведенный выше код в цикле на нескольких серверах (которые все находятся в таблице #servers). Как я могу осуществить это, не прибегая к динамическому SQL?

P.S. Все рассматриваемые серверы являются SQL Server 2005.

1 Ответ

1 голос
/ 07 мая 2011

Что насчет этого?:

SELECT * FROM OPENQUERY(@serverName,'select * from mydb.dbo.mytable');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...