2009-04-28 51 views
1

有誰知道是否有更快的方式來編輯表中有外鍵的記錄(在sql server中)..我會解釋..我有大約5個表有自己的ID,但使用外鍵...更改具有外鍵的表(sql server)中的記錄?

因此我需要改變的外鍵(在我的情況下,合同號),但我不得不給每個記錄複製到一個新的記錄和編輯它這樣...

由於如果我嘗試編輯合同編號,它會給我提供相關聯的標準錯誤,並且違反了外鍵等。

Surly必須有更好的方法嗎?

任何想法?

回答

3

你是在談論改變PK然後更新所有的FKS?在這種情況下,啓用級聯更新,這將做自動的 與刪除一樣,啓用級聯刪除

ON DELETE CASCADE

指定如果試圖刪除行與外鍵引用的關鍵在其他表中的現有行中,包含這些外鍵的所有行也被刪除。如果還在目標表上定義了級聯參考操作,則還會爲從這些表中刪除的行採用指定的級聯操作。

ON UPDATE CASCADE

指定如果試圖在一排,其中鍵值由外鍵在其他表的現有行引用更新鍵值,所有的外鍵值都也更新爲爲該密鑰指定的新值。如果級聯參考操作

+0

感謝您的幫助,我打算使用udpate級聯,但我想我可能需要重新組織我的外鍵 – 2009-04-30 10:50:22

3

我不是SQL專家,但不能像ON UPDATE CASCADE那樣設置類似於主鍵更改時自動更新外鍵的東西嗎?

0

或者嘗試禁用完整性約束,請執行更改並嘗試重新啓用約束。基本上,如果你沒有這樣做,你會得到一個錯誤,然後(不能啓用一個違反約束)。

相關問題