查询具有来自不同数据库的两个表,每个表没有数据库前缀

时间:2019-01-31 09:47:42

标签: sql sql-server database

我在db1中有一个表(tb1),在db2中有一个tb2。

如果我按如下方式加入两个表

select *from db1.tb1 join db2.tb2 on tb1.id=tb2.id

如果db1是默认数据库,那么我可以将其编写如下

select *from tb1 join db2.tb2 on tb1.id=tb2.id

现在,我要的是不要对tb2使用前缀,即(db2)

1 个答案:

答案 0 :(得分:2)

如果您不给前缀DB2,则SQL Server将尝试仅在连接的数据库中查找表,并且查询将失败。

您可以尝试为表格创建synonyms

CREATE SYNONYM tbl2 FOR db2.dbo.tb2

这样您可以隐藏数据库。