我必须在一组链接服务器上运行多个查询。我想尝试不使用动态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。
答案 0 :(得分:1)
这个怎么样?:
SELECT * FROM OPENQUERY(@serverName,'select * from mydb.dbo.mytable');