我試圖清理與它廢話記錄的負載的數據庫中刪除行由於擔心遞歸,以便在與外鍵
這是一個關係結構,並有外鍵連接一切融合在一起,我有得到了刪除命令設置:
DELETE FROM Members
WHERE (CurrentClass = 339) AND (YEAR(LastSessionDate) < 2011)
的DB結構如下:
Members
-----------------------------------------------------------------------
Id ¦ FirstName ¦ LastName ¦ JoiningClass ¦ CurrentClass ¦ CurrentScheme
-----------------------------------------------------------------------
0 ¦ Fakey ¦ McFake ¦ 123 ¦ 999 ¦ 2
-----------------------------------------------------------------------
1 ¦ Fakette ¦ McFake ¦ 123 ¦ 998 ¦ 1
-----------------------------------------------------------------------
上表引用表Classes
和Pricing
JoiningClass, CurrentClass and CurrentScheme
這些表然後引用其他表與他們擁有的字段,所以基本上所有東西都引用一切。
我想刪除符合我的標準的上述記錄,但我得到一個外鍵警告。
我曾考慮過加入:
ON DELETE CASCADE
要,但恐怕應有盡有參考一切將刪除所有數據庫中的數據。
I.E.如果我刪除上面的記錄0,它將刪除類123
和999
,然後將刪除所有的引用。
這是否發生或我應該知道更好?
你得到的外鍵警告是什麼? – taylonr 2011-04-11 12:20:05
嘗試創建約束時,您可能會收到[本文](http://support.microsoft.com/kb/321843)中描述的錯誤。 – 2011-04-11 12:41:29
@taylonr - 'DELETE語句與參考約束「FK_MissedSessions_Members」衝突。衝突發生在數據庫「CENSORED」,表「dbo.MissedSessions」,列「成員」。該聲明已被終止 – 2011-04-11 13:29:04