【数据库】UPDATE 语句与 REFERENCE 约束""冲突。该冲突发生于数据库"",表"", column ''。

一、问题

当我们已经成功创建了一个触发器,触发器是功能是:如果在学生表中修改了学号,则自动修改成绩表中的学号。
但是检验时,修改学生表的学号却遇到如下报错:
【数据库】UPDATE 语句与 REFERENCE 约束""冲突。该冲突发生于数据库"",表"", column ''。

消息 547,级别 16,状态 0,第 71 行
UPDATE 语句与 REFERENCE 约束"FK_Score_Student"冲突。该冲突发生于数据库"ScoreDB",表"dbo.Score", column ‘studentNo’。
语句已终止。

二、分析原因

通过报错提示,我们可以知道参照约束有问题,
【数据库】UPDATE 语句与 REFERENCE 约束""冲突。该冲突发生于数据库"",表"", column ''。
问题是发生在ScoreDB数据库下的Score表studentNo列。
【数据库】UPDATE 语句与 REFERENCE 约束""冲突。该冲突发生于数据库"",表"", column ''。
如图:
【数据库】UPDATE 语句与 REFERENCE 约束""冲突。该冲突发生于数据库"",表"", column ''。
点击该外键约束,发现更新规则和删除规则默认没有调整。所以当原来Student表的主键studentNo发生修改时,外键约束到的Score表是拒绝修改的。
【数据库】UPDATE 语句与 REFERENCE 约束""冲突。该冲突发生于数据库"",表"", column ''。

三、解决办法

把该外键约束的更新规则和删除规则改为级联,就可以了。
【数据库】UPDATE 语句与 REFERENCE 约束""冲突。该冲突发生于数据库"",表"", column ''。