我最近在我們的一箇舊數據庫中遇到了bizzare情況,我們的DBA(不是創建它的那個)不確定爲什麼會這樣做,它會有。我們唯一能想到的就是它是錯誤的。以下外鍵約束已定義在表上:SQL:指向同一列的列上的外鍵
CREATE TABLE [dbo].[SomeTable]
(
[Id] SMALLINT IDENTITY (1,1) NOT NULL,
-- other columns
CONSTRAINT [PK_SomeTable] PRIMARY KEY CLUSTERED ([Id] ASC)
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[SomeTable] WITH CHECK ADD CONSTRAINT [FK_SomeTable_SomeTable]
FOREIGN KEY ([Id]) REFERENCES [dbo].[SomeTable] ([Id])
GO
ALTER TABLE [dbo].[SomeTable] CHECK CONSTRAINT [FK_SomeTable_SomeTable]
GO
任何人都知道或有任何想法,這可能實際上做什麼?
這沒有意義。 –
也許他們試圖讓它成爲主鍵,並在首次嘗試時做錯了。除非它有一些奇怪的副作用,如防止插入或刪除? – Ben
@Ben - 如果該列尚未用主鍵或唯一約束聲明,則不可能創建外鍵。不,它不阻止任何事情。 –