多链接服务器和数据库上的SQL简单查询

多链接服务器和数据库上的SQL简单查询,sql,sql-server,tsql,Sql,Sql Server,Tsql,我在SSMS select*from dbo.table1中有一个简单的SQL查询,其中sucode='a002' 我正在尝试学习如何在以%live结尾的数据库上的所有链接服务器上运行此功能 我以前从来没有这样做过,我在网上看到的东西也没什么帮助 我知道我需要有quoteName.name,…。其中像“%live”这样的名称用于数据库名称,可能用于服务器?或者是服务器的OPENQUERY?还是链接 如果任何人有他们使用的模板或任何建议,我们将不胜感激。您可以使用未记录的存储过程MS\u Fore

我在SSMS select*from dbo.table1中有一个简单的SQL查询,其中sucode='a002'

我正在尝试学习如何在以%live结尾的数据库上的所有链接服务器上运行此功能

我以前从来没有这样做过,我在网上看到的东西也没什么帮助

我知道我需要有quoteName.name,…。其中像“%live”这样的名称用于数据库名称,可能用于服务器?或者是服务器的OPENQUERY?还是链接


如果任何人有他们使用的模板或任何建议,我们将不胜感激。

您可以使用未记录的存储过程MS\u ForeachDb对每个数据库执行查询。您可以使用sys.servers获取链接服务器的列表,并针对每个链接服务器运行它们

选择“从OPENQUERY中选择*”+name+”,执行master.sys.sp_MSforeachdb USE[?];从dbo.table1中选择*,其中sucode=a002' 从sys.servers,其中链接为\u=1;-避免从本地服务器拉取
注意:不建议使用未记录的程序

我正在尝试学习如何在以%live结尾的数据库上的所有链接服务器上运行此功能。这感觉像是一个双重问题。您是说要对多个实例上的多个数据库运行上述查询吗?那么,这里的最终目标是什么?您这样做有何收获?@Larnu很抱歉造成混淆……在本例中,我想查找dbs中所有表1中以%live结尾的sucode列中的每个a002。所有这些数据库中都有表1。我知道我可以通过从OPENQUERY[server1]手动执行SELECT*,'SELECT*从Xlive.dbo.table1,其中sucode=a002',然后在server1中再次为Ylive运行,然后在server2中为db Xlive运行,等等,但是有很多服务器和数据库,所以我看看是否有更好的方法?我希望这一点很清楚,您可以使用注册的服务器同时对多个实例运行查询,但要对多个动态数据库运行查询,则需要动态SQL;我甚至不确定这是否适用于这种类型的查询,我从未对已注册的服务器组使用过动态查询。如果我是诚实的,这感觉就像是一个问题。你不是在两天前的最后一个问题中问了一些类似于他的问题吗?@Larnu感谢你的输入,尽管这不是一个真正的XY问题,因为我需要服务器部分和数据库部分的帮助,因为我已经尝试过解释,并且只是提供了关于如何工作的想法,并征求了建议。如果我不清楚,请道歉。没有什么用的?然后,使用3部分命名进行选择@拉努,对不起。错误被纠正了。