2012-05-15 409 views
1

我有一個多級聯路徑錯誤的問題。這裏是我的表:多級聯路徑

表(公司)
企業編碼(PK)
....

表(飛機)
AircraftRegistration(PK)
OwnerCode(FK到企業編碼)
OperatorCode(FK to CompanyCode)
....

當我更新公司中的主鍵時,我只想更新飛機表中的所有者代碼和操作員外鍵。

就是要解決這個問題,使用觸發器正確的方法是什麼?

+0

我認爲觸發器是處理SQL-Server中多個層疊路徑的唯一方法。 –

回答

2

您可以將ON UPDATE CASCADE添加到您的外鍵定義中,然後如果引用的鍵(即Companies.CompanyCode)發生更改,這些值將自動更新。

編輯:但正如您在評論中指出的那樣,這對於有兩個外鍵引用同一列的表不起作用,所以對於這些情況,您將不得不使用觸發器或在一種「受控」的方式,比如通過更新引用列的存儲過程。哪種方法更好取決於您的應用程序設計以及數據庫的使用方式。

+0

這就是我試過,但它給我的錯誤」 ......可能會導致循環或多重級聯路徑。」這是因爲我有兩個FK的同一個表,‘OwnerCode’和‘操作員代碼’。 – Kiwi

+0

我的錯誤,我沒有立即迴應,我更新了答案。 – Pondlife

相關問題