我想知道在SQL Server中使用外鍵的原因,因爲我與同事之一進行了辯論。SQL Server中的外鍵
我有意見,當兩個表通過外鍵連接時,當記錄從父表中刪除,那麼從子表中刪除相同的引用記錄也應該刪除。
說例如我有兩個表,Table1和Table2。 Table1有一個id = 1的記錄,而Table2有兩個id = 1的記錄。表2是一個子表,通過一個外鍵與Table1連接。現在,當我嘗試從Table1中刪除id = 1記錄時,應該同時從Table2中刪除id = 1(2條記錄)。
他說這是錯誤的。如果是外鍵,我必須分別從兩個表中刪除記錄。
誰是正確的?
好的答案,但並沒有完全回答OP關於'在SQL Server中使用外鍵'的第一個問題。但我認爲這會打擊範圍。 – 2011-04-07 18:38:31
但是,如果我設置刪除和更新爲無操作的外鍵,當我嘗試從父表中刪除記錄,然後我得到錯誤的子表中的外鍵衝突。 – Abbas 2011-04-07 19:01:20
@abbas:是的 - 如果你設置「無動作」,那麼它是**你的**首先刪除子行的責任。 – 2011-04-07 20:20:38