我想知道是否有人可以解释在连接中唯一标识 sql server 对象的概念。
在我的示例中,有 2 个模式和 2 个表(但名称相同)。我的假设是,即使两个模式之间的表名可能相同,只要使用它们的全限定名 databasename.schemaname.objectname 引用它们,SQL Server 应该能够区分它们。但是,情况似乎并非如此,解决方法是使用 alias。
如果有人能解释或指出一些关于为什么 sql server 不能唯一标识这些的文献,我将不胜感激。
CREATE SCHEMA [Sch1]
GO
CREATE SCHEMA [Sch2]
GO
CREATE TABLE [Sch1].[Table_1](
[ID] [int] NULL,
[DESC] [nchar](10) NULL
) ON [PRIMARY]
GO
CREATE TABLE [Sch2].[Table_1](
[ID] [int] NULL,
[DESC] [nchar](10) NULL
) ON [PRIMARY]
GO
Select *
From Sch1.Table_1
Join Sch2.Table_1
on Sch1.Table_1.Id = Sch2.Table_1.Id