加入2个SQL Server

加入2个SQL Server,sql,sql-server,Sql,Sql Server,我试图搜索2台服务器(A和B)。服务器A有数据库PROD_A,服务器B有PROD_B。PROD_A有表1,PROB_B有表2。如何合并来自2个不同SQL Server的2个表?已经完成了链接服务器的设置,但查询语法有问题。谢谢。您正在寻找的功能是多服务器查询,我几年前使用过它。 看看这篇文章。您需要使用sp_addlinkedserver(文档化)创建一个链接服务器。在服务器A上发出以下命令: sp_addlinkedserver ServerB 然后使用以下命令访问远程表: select *

我试图搜索2台服务器(A和B)。服务器A有数据库PROD_A,服务器B有PROD_B。PROD_A有表1,PROB_B有表2。如何合并来自2个不同SQL Server的2个表?已经完成了链接服务器的设置,但查询语法有问题。谢谢。

您正在寻找的功能是多服务器查询,我几年前使用过它。
看看这篇文章。

您需要使用sp_addlinkedserver(文档化)创建一个链接服务器。在服务器A上发出以下命令:

sp_addlinkedserver ServerB
然后使用以下命令访问远程表:

select *
from ServerB.Prod_B.dbo.table2
这是远程表的四部分命名约定。它假定远程表位于名为“dbo”的模式中。如果不是,则将其更改为正确的模式

如果您有权限问题,请发布另一个问题

如果希望在一个查询中访问这些表,则可以将这些表放在一个查询中

select *
from ServerB.Prod_B.dbo.table2 join
     Prod_A..table1
     on . . .

您可能需要一个联合查询

SELECT * FROM [serverA].[dbName].[table1]
UNION
SELECT * FROM [serverB].[dbName].[table2]

正如Gordon所指出的,如果是SQL Server,您需要将每个表作为其完整的四部分名称来引用。

他的问题的可能重复之处不是访问外部表,而是在一个查询中访问两个表。谢谢。已添加链接服务器。在服务器A的服务器对象的链接服务器下,但在查询过程中仍然找不到它。您知道它的查询的确切语法吗?谢谢。@user2397263。修改您的问题以显示您试图运行的查询。我正在尝试获取ServerA.PROD_A.table1的第1列和ServerB.PROD_B.table2的第2列。我已经完成了sp的设置_addlinkedserver@user2397263 . . . 您知道如何在没有链接服务器的情况下编写所需的查询吗?如果没有,请问另一个问题,省去链接的服务器部分。显示一些示例数据和您想要的结果。由于问题中的“SQL Server”语句,我假设它是SQL Server。我试图获取ServerA.PROD_A.table1的第1列和ServerB.PROD_B.table2的第2列。我已经完成了sp_addlinkedserver的设置