我需要更新记录的主键,但它也是另外两个表中的外键。我还需要更新的主键也反映在子表中。
这是我的查询和错误:
begin tran
update question set questionparent = 10000, questionid= 10005 where questionid = 11000;
Error 9/4/2009 10:04:49 AM 0:00:00.000 SQL Server Database Error: The UPDATE statement conflicted with the REFERENCE constraint "FK_GoalRequirement_Question". The conflict occurred in database "numgmttest", table "dbo.GoalRequirement", column 'QuestionID'. 14 0
我不记得如何去做这就是为什么我在这里。有什么帮助吗?
答案 0 :(得分:40)
您的人际关系是否使用
ON UPDATE CASCADE
如果他们正在更改主表中的密钥将更新外键。
e.g。
ALTER TABLE Books
ADD CONSTRAINT fk_author
FOREIGN KEY (AuthorID)
REFERENCES Authors (AuthorID) ON UPDATE CASCADE
答案 1 :(得分:20)
你可以:
答案 2 :(得分:14)
如果要以图形方式设置级联规则,请在SQL Management Studio上设置级联规则
关闭并保存,完成!
(试用SQL 2008)
答案 3 :(得分:7)
由于我不太自信禁用FK约束,我也更喜欢:
优势:在此过程中没有违反约束。
答案 4 :(得分:2)
转到每个子表的外键关系以及插入和更新规范更改删除和更新规则以级联。这可能对你有所帮助
答案 5 :(得分:0)
-创建à具有相同数据和à不同主键的新行。 -更新所有儿童表。 -删除您整理数据的行 它完成了。