我们可以对两个不同的数据库表使用 join 吗?

我们可以对来自不同数据库的两个表使用连接操作吗? 如果可以,我该怎么做?

两个数据库位于同一台服务器上,而且 DBMS 是相同的。

256299 次浏览

SQLServer 允许您联接来自不同数据库的表,只要这些数据库位于同一台服务器上。联接语法是相同的; 唯一的区别是必须完全限定表名。

假设在同一台服务器上有两个数据库-Db1Db2Db1有一个名为 Clients的表,其中有一列 ClientId,而 Db2有一个名为 Messages的表,其中有一列 ClientId(让我们先不考虑为什么这些表位于不同的数据库中)。

现在,要对上述表执行连接,您将使用以下查询:

select *
from Db1.dbo.Clients c
join Db2.dbo.Messages m on c.ClientId = m.ClientId

您可以在数据库中使用 Synonyms 部分。

enter image description here

然后在“同义词”选项卡的“视图向导”中找到保存的同义词,并添加到视图中,并简单地设置内部连接。 enter image description here