我在想如果有人能解釋在連接中唯一標識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
你得到什麼錯誤? – lad2025
FROM子句中的對象「DBA_2014.Sch2.Table_1」和「DBA_2014.Sch1.Table_1」具有相同的公開名稱。使用相關名稱來區分它們。 – user2811633
你能用SQL Server 2000或兼容級別80來試試你的代碼嗎? – lad2025