哆啦的時(shí)光機(jī)
2019-06-18 11:01:47
如何在SQLServer中使用級聯(lián)刪除?我有兩個(gè)表:T1和T2,它們是現(xiàn)有的有數(shù)據(jù)的表。T1和T2之間有一對多的關(guān)系。如何在SQLServer中更改表定義以執(zhí)行級聯(lián)刪除,當(dāng)從T1刪除記錄時(shí),T2中的所有關(guān)聯(lián)記錄也被刪除。他們之間存在著外來的限制。我不想刪除表或創(chuàng)建一個(gè)觸發(fā)器來執(zhí)行T2的刪除。例如,當(dāng)我刪除一個(gè)員工時(shí),所有的考核記錄也應(yīng)該會(huì)消失。T1-雇員,Employee ID
Name
StatusT2-業(yè)績審查,Employee ID - 2009 Review
Employee ID - 2010 Review
3 回答

RISEBY
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
刪除現(xiàn)有的外鍵約束, 添加一個(gè)新的 ON DELETE CASCADE
設(shè)置已啟用。
ALTER TABLE dbo.T2 DROP CONSTRAINT FK_T1_T2 -- or whatever it's calledALTER TABLE dbo.T2 ADD CONSTRAINT FK_T1_T2_Cascade FOREIGN KEY (EmployeeID) REFERENCES dbo.T1(EmployeeID) ON DELETE CASCADE

江戶川亂折騰
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
ON DELETE CASCADE
ADD CONSTRAINT
SELECT OBJECT_NAME(f.parent_object_id) AS 'Table name', COL_NAME(fc.parent_object_id,fc.parent_column_id) AS 'Field name', delete_referential_action_desc AS 'On Delete'FROM sys.foreign_keys AS f, sys.foreign_key_columns AS fc, sys.tables t WHERE f.OBJECT_ID = fc.constraint_object_idAND t.OBJECT_ID = fc.referenced_object_idORDER BY 1
DROP
sp_help 'TableName'
添加回答
舉報(bào)
0/150
提交
取消