2009-04-21 154 views
0

在SQL Server 2005中有沒有辦法解決這個問題? (這讓我感到困惑,每次遇到它時,我都會陷入困境,但這是我第一次不得不面對並且一直處於堆棧溢出狀態,請保存我所提供的一點理智! )SQL Server 2005 - 級聯刪除的外鍵

DimensionTable:
ID INT IDENTITY(1,1)

FactTable:
SOURCE_ID INT NOT NULL,
target_id INT NOT NULL

我從「Fact.source_id」到「Dimension.id」創建了外鍵和級聯刪除和級聯更新設置。

當我試圖做同樣的「Fact.target_id」我得到了一個錯誤,告訴「哦,不,不,不」,因爲對於級聯遵循多條路徑。

這裏有沒有涉及其他的外鍵,只是這兩個我想創建。如果沒有Cascade,我可以創建第二個外鍵,但對我來說這似乎很流行。這是一套手工維護的表格(很少會被觸摸,所以客戶不會付錢去做這件事)。這樣一個級聯刪除/更新將非常有用,但僅限於如果它在兩個領域。 (我的一致性吸盤)

**** ****抽泣

回答

1

是的,而是使用一個觸發器。它會攔截DELETE命令,並可以相應地指示邏輯。

0

只能級聯從一個關係中刪除。建議你在觸發器intead中設置它。