2011-03-14 80 views
1

我必须在一组链接的服务器上运行几个查询。我想尝试,而不是诉诸动态SQL,但迄今有麻烦。如何高效地在多个链接的服务器上运行查询?

这是我到目前为止有:

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

EXEC sp_addlinkedserver @[email protected], @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

不知道你可以不动态SQL。唯一的其他可能的答案是使用PowerShell。 – AgentDBA 2011-03-15 10:20:02

回答

1

这个怎么样?:

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