如何有效地在多个链接服务器上运行查询?

时间:2011-03-14 17:09:20

标签: sql sql-server-2005 linked-server

我必须在一组链接服务器上运行多个查询。我想尝试不使用动态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 个答案:

答案 0 :(得分:1)

这个怎么样?:

SELECT * FROM OPENQUERY(@serverName,'select * from mydb.dbo.mytable');