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


Answers:


187

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

假设您在同一服务器上有两个数据库- Db1Db2Db1有一个名为表Clients与一列ClientId,并Db2有一个名为表Messages与列ClientId(让我们离开asside为什么这些表是在不同的数据库)。

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

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

17
也许应该指出,两个数据库都必须在相同的安全上下文中可访问。换句话说,如果您使用两个数据库的不同凭据登录,则以上操作将无效。在这种情况下,您可能必须使用“链接服务器”。
伊恩·高德比

2

您可以在数据库中使用“同义词”部分。

在此处输入图片说明

然后在“同义词”选项卡的视图向导中找到您保存的同义词,然后添加到视图中并简单地设置内部联接。 在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.