我有一个带有约束的表,该表具有违反该约束的现有记录。虽然如果有人在没有检查的情况下应用约束并且在插入违规数据之后这是可能的,那么 is_not_trusted 标志在 sys.foreign_keys 表中怎么可能为零?
这是我目前遇到的情况,在 is_not_trusted 标志为零的外键上发生数据违规。我认为这本质上是确认约束是否已“宗教地”强制执行的标志。
谢谢
我有一个带有约束的表,该表具有违反该约束的现有记录。虽然如果有人在没有检查的情况下应用约束并且在插入违规数据之后这是可能的,那么 is_not_trusted 标志在 sys.foreign_keys 表中怎么可能为零?
这是我目前遇到的情况,在 is_not_trusted 标志为零的外键上发生数据违规。我认为这本质上是确认约束是否已“宗教地”强制执行的标志。
谢谢
来自评论:
这可能是由于页面上实际写入的值不正确(数据损坏)所致。或产品中的错误(可能性较小但有可能)。运行
DBCC CHECKDB
以查看是否发现任何问题。– 马丁·史密斯 16 年 6 月 18 日 0:07 3根据 Martin 的评论 - 数据是否通过进入表格
MERGE
?这是一个可以完全做到这一点的错误(关闭为“Won't Fix”)和另一个错误(也是“Won't Fix”)。如果您需要更多避免的理由MERGE
,请参阅本文。– Aaron Bertrand 2016 年 6 月 18 日 3:21