如何在同一查询中访问两个不同的链接服务器

时间:2013-12-20 14:40:41

标签: excel excel-vba linked-server vba

我正在尝试从两个不同的链接服务器访问表。基本上从一台服务器我得到了id的列表,从另一台链接的服务器,我需要得到另外两个id匹配的列。

我试图从一台服务器获取id并首先在excel中填充它。在此之后,我从其他服务器获取了所有数据并编写了一个vb宏来选择匹配的行。这实际上需要花费很多时间,并且在mos时代,excel会挂起,因为实际上有很多内容需要比较。对此有一个非常简单的解决方案吗?

我正在尝试类似下面的内容,但面临问题以获得结果。

   select * from openquery([server1], 
   'select schema1.table1.col1, schema1.table1.col2 from schema1.table1 where schema1.table1.col1 exists 
   (select * from openquery([server2],'select schema2.table2.col1 from schema2.table2')')

任何帮助都将受到高度赞赏。

提前多多感谢。

1 个答案:

答案 0 :(得分:0)

我实际上只是把它放在一起来查询本地表和1个链接的db表。 Intellisense可能不喜欢链接服务器表,但确实有效:

Select GlobalEntityID, LicenseNumber, IssueDate, ExpireDate, BusinessLicenseClosedDate, bl.Issued, bl.Expire, bl.Cease
From COLICENSECERTIFICATION lic 
Inner Join 
    [LinkedServer].[DB].[schema].[blAttribs] bl on lic.LICENSENUMBER = bl.Account_key
Order by LicenseNumber;
go

您可以在其中放置'Where'子句以匹配任何其他条件,或者添加另一个Inner Join以将另一个链接服务器表添加到查询中。