在什么情况下,父表可能丢失子表中活动外键引用的记录?

问题描述 投票:0回答:2

我在这里全亏了。

我有一个SQL Server数据库,它具有一个最关键的中央表,并且具有许多与它具有外键关系的many子表。在所有表上启用外键检查。为了确定,我运行了EXEC sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"

尽管如此,多个子表中的记录都具有引用父表中不存在的6条记录的外键。

这怎么可能?

我运行DBCC CHECKDB以查看是否存在数据库损坏,并且得到了:

CHECKDB在数据库'xxxxxDev'中发现0个分配错误和0个一致性错误。DBCC执行完成。如果DBCC打印了错误消息,请与系统管理员联系。

我在这里想念什么?怎么会这样?我在“摇”。enter image description here

sql sql-server tsql referential-integrity
2个回答
0
投票

谢谢您的“ Piotr”(https://stackoverflow.com/users/10542581/piotr)。

开发人员已为隐藏行的表的安全策略(行级安全性)添加了一个谓词。他从未删除过它,而我忘记了它在那里。

我以为我疯了...


0
投票

可能的原因是为父表启用了行级安全性。它可能正在隐藏查询中的行。

© www.soinside.com 2019 - 2024. All rights reserved.