由于 FK 约束,两个表相互关联。我试图通过禁用所有触发器来更新这些表,但仍然收到以下错误:-
UPDATE 语句与 FOREIGN KEY 约束“FK_TEST_REFERRING_REFPHYSI”冲突。冲突发生在数据库“ccdb”、表“dbo.RefPhysician”、列“RefID”中。
该语句已终止。”
这就是我努力完成任务的方式。请帮助或更新以下 T-SQL:-
Begin Transaction
Begin Try
ALTER TABLE Test DISABLE Trigger ALL
ALTER TABLE RefPhysician DISABLE Trigger ALL
UPDATE Test
SET RefID = '05f6c6b4-63ff-45b2-a5e2-920d5dce3e45'
WHERE RefID = '05e6c6b4-63ff-45b2-a5e2-920d5dce3e45';
UPDATE RefPhysician
SET RefID = '05f6c6b4-63ff-45b2-a5e2-920d5dce3e45' ,
SpecID = NULL ,
RefLastName = '117002 DR. BRAD DIBBLE' ,
RefFirstName = '201-190 CUNDLES RD E, BARRIE ONT L4M 4S5' ,
RefMiddleName = NULL ,
RefPhone1 = '6138365083' ,
RefPhone2 = 'print,read,866,1' ,
RefFax = '6476476464' ,
RefEmail = '[email protected]'
WHERE
RefID = '05e6c6b4-63ff-45b2-a5e2-920d5dce3e45'
ALTER TABLE Test ENABLE Trigger ALL
ALTER TABLE RefPhysician ENABLE Trigger ALL
Commit Transaction
End Try
Begin Catch
Rollback Transaction
End Catch
ALTER TABLE Test NOCHECK CONSTRAINT ALL
ALTER TABLE RefPhysician NOCHECK CONSTRAINT ALL
ALTER TABLE Test WITH CHECK CHECK CONSTRAINT ALL
ALTER TABLE RefPhysician WITH CHECK CHECK CONSTRAINT ALL
重要的:最后两行中有趣的“WITH CHECK CHECK”语法是为了确保 SQL Server 在重新启用后再次信任 FK 约束。您真的不想将它们重新启用为不受信任!
但是,如果您对表格设计有任何影响,我strongly建议不要在主键或外键中使用可变值。如果 FK 约束基于插入后永不改变的内部 ID,则效果会更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)