我试图更新SQL Server 2014数据库中的值(小拼写错误)。
我喜欢这个:
update t_Table set funID = 'References' where funID = 'Referencies'
执行此操作时,我收到错误
The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_t_Table_Language_t_Table". The conflict occurred in database "db", table "dbo.t_Table".
如果更新外键,我会收到类似的错误。
有没有办法同时更新所有值? 我有一个模糊的记忆,有人在管理工作室中展示了这样做的方法,但我不记得如何。
答案 0 :(得分:1)
在外键上启用更新级联
ALTER TABLE t_Table_Language DROP CONSTRAINT FK_t_Table_Language_t_Table
ALTER TABLE t_Table_Language ADD CONSTRAINT FK_t_Table_Language_t_Table
FOREIGN KEY (funID) REFERENCES t_Table(funID)
ON UPDATE CASCADE
编辑: 或者反过来说,我不确定哪个表有外出键
ALTER TABLE t_Table DROP CONSTRAINT FK_t_Table_Language_t_Table
ALTER TABLE t_Table ADD CONSTRAINT FK_t_Table_Language_t_Table
FOREIGN KEY (funID) REFERENCES t_Table_Language(funID)
ON UPDATE CASCADE
然后对引用的表(主表)进行更新。
UPDATE t_Table_Language
SET funID = 'References'
WHERE funID = 'Referencies'