2012-10-29 248 views
0

我在我的數據庫中有兩個表。主鍵TableOnetheKeyTableTwo有一個外鍵theKey,它指的是TableOne中的相應列。現在,我想在TableTwo更新theKey外鍵約束5

UPDATE TableTwo 
    SET theKey = NewIk 
    FROM TableTwo W 
    JOIN TableThree D ON W.theKey_backup = D.OldIk 
    WHERE dt >= '2012-05-01' 

但我收到以下錯誤:

The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_TableTwo_TableOne". The conflict occurred in database "MyDB", table "dbo.TableOne", column 'theKey'.

能否請您解釋一下爲什麼我得到這個錯誤,如果我不碰TableOne

謝謝。

+1

您正試圖將'TableTwo.theKey'設置爲**不存在的值**在引用表TableOne中 - 這就是錯誤的意思。 –

+0

謝謝!你不想讓它成爲答案嗎?我會標記它。 –

回答

1

您正在嘗試將TableTwo.theKey設置爲不存在的值在參考表中,TableOne - 這就是錯誤所說的。

所以你需要檢查爲什麼會發生這種情況 - 你從哪裏選擇新的值?爲什麼它是TableOne中尚未存在的值?