DELETE 語句與 REFERENCE 約束沖突。
DELETE 語句與 REFERENCE 約束"FK__Comment__Article__0519C6AF"沖突。該沖突發生於數據庫"dbArticle",表"dbo.Comment", column 'ArticleID'。
語句已終止。
外鍵取值規則:空值或參照的主鍵值。
(1)插入非空值時,如果主鍵表中沒有這個值,則不能插入。
(2)更新時,不能改為主鍵表中沒有的值。
(3)刪除主鍵表記錄時,你可以在建外鍵時選定外鍵記錄一起級聯刪除還是拒絕刪除。
(4)更新主鍵記錄時,同樣有級聯更新和拒絕執行的選擇。
INSERT 和 UPDATE 規范類別
展開以顯示有關該關系的“刪除規則”和“更新規則”的信息。
- 刪除規則
-
指定當數據庫的最終用戶嘗試刪除某一行,而該行包含外鍵關系所涉及的數據時所發生的情況。如果設置為:
Restrict(限制)︰如果有從行就不能刪除父行。
Cascade(級聯)︰刪除父表中的行會自動刪除從表中的任何相關行。
No Action(無動作)︰這是默認的情況,如果有從行就不能刪除父行。和restrict的區別在於何時執行約束。
• Set Null(置空)︰該規則確保在父表刪除一行時,講從表的外鍵置空(如果允許空的話),行的其它列保持不變。
更新規則
指定當數據庫的用戶嘗試更新某一行,而該行包含外鍵關系所涉及的數據時所發生的情況。如果設置為:
Restrict(限制) 顯示一條錯誤信息,告知用戶不允許執行該刪除操作,DELETE 將被回滾。Cascade(級聯) 刪除包含外鍵關系中所涉及的數據的所有行。
Set Null(置空) 如果表的所有外鍵列都可接受空值,則將該值設置為空。僅適用於 SQL Server 2005。
No Action(無動作) 如果表的所有外鍵列均已定義默認值,則將該值設置為列定義的默認值。僅適用於 SQL Server 2005。
外鍵(foreign key)的更新值必須匹配其父表中的某個父鍵值,並且當完成 父鍵(parent key)上的 update 操作時,所有的外鍵值必須有匹配的父鍵值。總的來說,這意味着不能存在任何“孤兒”;每個子表必須有一個父表。