我正在查看由外部供应商开发的新数据库架构。有两个数据库:
Database1
Database2
他们给我发送了一条SQL语句,该语句连接了两个数据库之间的表。在某些地方,他们使用了双点符号。我以前从未见过。请参阅下面的SQL语句(这不是他们发送给我的语句):
select * from database2..Person
上面的语句从database1运行。为什么有两个点?如果我删除点之一,则查询不会运行。
我做了一些谷歌搜索,并遇到了这个:http://www.sqlservercentral.com/Forums/Topic585446-338-1.aspx。这表明它是指架构。然而:
最佳答案
多亏了这个点,您为查询选择了默认架构(dbo)。
当您有两个数据库时,需要提供表的完整路径。
如果我们有:
Database1模式:dbo, guest 表dbo.A, guest :A
Database2模式:dbo, guest 表dbo.B, guest :B
如果我们创建如下的select语句:
我们正在从dbo.B表中选择数据
如果我们想指定架构,我们需要引用为
select * from Database2.schemaname.tablename
编辑:
正如同事指出的那样,可以在数据库中更改默认模式,但是在此特定示例中,它似乎是dbo :)
关于sql - 双点 table 预选赛,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34786049/