Dot*_*ude 3 sql sql-server sql-server-2008
我有2张桌子:
TableA
------
TableAID INT IDENTITY Primary Key
TableBID INT NULL
I add a unique constraint on TableBID
ALTER TABLE TableAID ADD CONSTRAINT xx UNIQUE ([TableBID])
TableB
------
TableBID INT IDENTITY Primary Key
Run Code Online (Sandbox Code Playgroud)
现在当我删除TableA行时,我也需要删除TableB,所以我试图添加一个带有级联删除的FK
ALTER TABLE TableB ADD CONSTRAINT yy FOREIGN KEY (TableBID)
REFERENCES TableA (TABLEBID) ON DELETE CASCADE
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
Msg 1788, Level 16, State 0, Line 1
Cascading foreign key 'yy' cannot be created where the referencing column 'TableB.TableBID' is an identity column.
Run Code Online (Sandbox Code Playgroud)
Joe*_*lli 10
TableB.TableBID不能同时是IDENTITY列(独立计算),同时也是另一个表中列的外键.
我认为你的关系已经逆转并且实际上想要:
ALTER TABLE TableA ADD CONSTRAINT yy FOREIGN KEY (TableBID)
REFERENCES TableB (TABLEBID) ON DELETE CASCADE
Run Code Online (Sandbox Code Playgroud)