gpt4 book ai didi

sql - 如何查询多个链接服务器?

转载 作者:行者123 更新时间:2023-12-05 00:31:20 25 4
gpt4 key购买 nike

链接一些 SQL Server 2008 服务器/实例后,我想对这些服务器进行更通用的查询。我知道我必须像这样指定查询的命运:

select * 
from [SRV\INSTANCE].dbname.dbo.foo

但是,我会针对多个链接服务器运行此查询。我也知道这个 select 语句返回的正是 SRV\INSTANCE我需要:
select ss.name 
from sys.servers ss
where ss.server_id > 0

这个,返回所有 servers\instances从我要查询的地方。

在这种情况下,所有数据库都具有相同的结构,所以我想做这样的事情:
select * 
from [select ss.name from sys.servers ss where ss.server_id > 0].DBNAME.dbo.foo

有任何想法吗?

提前致谢。

最佳答案

您可以动态地动态创建 SQL 语句,然后运行该命令。在带有 help += 运算符的 @dml 变量中的这种情况下,动态创建了整个命令

DECLARE @dml nvarchar(max) = N''
SELECT @dml += 'UNION ALL SELECT * FROM ' + QUOTENAME(ss.name) +
'.[DBNAME].[dbo].foo '
FROM sys.servers ss
WHERE ss.server_id > 0

SELECT @dml = STUFF(@dml, 1, 10, '')
EXEC sp_executesql @dml

关于sql - 如何查询多个链接服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14945367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com