【发布时间】:2013-05-18 16:35:20
【问题描述】:
我正在尝试搜索 2 个服务器(A 和 B)。服务器 A 有数据库 PROD_A,服务器 B 有 PROD_B。 PROD_A 有 table1,PROB_B 有 table2。如何合并来自 2 个不同 SQL Server 的 2 个表?已经完成了链接服务器的设置,但我遇到了查询语法问题。谢谢。
【问题讨论】:
标签: sql sql-server
我正在尝试搜索 2 个服务器(A 和 B)。服务器 A 有数据库 PROD_A,服务器 B 有 PROD_B。 PROD_A 有 table1,PROB_B 有 table2。如何合并来自 2 个不同 SQL Server 的 2 个表?已经完成了链接服务器的设置,但我遇到了查询语法问题。谢谢。
【问题讨论】:
标签: sql sql-server
您需要使用 sp_addlinkedserver(记录在 here)创建链接服务器。在服务器 A 上发出命令:
sp_addlinkedserver ServerB
然后使用以下命令访问远程表:
select *
from ServerB.Prod_B.dbo.table2
这是远程表的四部分命名约定。它假定远程表位于名为“dbo”的模式中。如果不是,请将其更改为正确的架构。
如果您有权限问题,请发布另一个问题。
如果您想在一个查询中访问它们,请将表放在一个查询中
select *
from ServerB.Prod_B.dbo.table2 join
Prod_A..table1
on . . .
【讨论】:
您可能需要一个 UNION 查询。
SELECT * FROM [serverA].[dbName].[table1]
UNION
SELECT * FROM [serverB].[dbName].[table2]
正如 Gordon 所说,如果是 SQL Server,您需要将每个表称为完整的四部分名称。
【讨论】:
您正在寻找的功能是 MUltiServer 查询,我几年前使用过。 看看this的文章。
【讨论】: