2012-10-29 63 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中尚未存在的值?