小编use*_*633的帖子

SQL Server对象名称

我想知道是否有人可以解释在连接中唯一标识sql server对象的概念.

在我的示例中,有2个模式和2个表(但具有相同的名称).我的假设是,即使两个模式之间的表名可能相同,只要它们以其完全限定名称databasename.schemaname.objectname引用,SQL服务器应该能够找出差异.但是,似乎并非如此,解决方法是使用别名.

我很感激如果有人可以解释或指出一些文献围绕为什么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
Run Code Online (Sandbox Code Playgroud)

sql sql-server join objectname

5
推荐指数
1
解决办法
626
查看次数

标签 统计

join ×1

objectname ×1

sql ×1

sql-server ×1