检测外键有效性而不启用它

时间:2016-02-01 15:10:56

标签: sql-server sql-server-2012 foreign-keys constraints

我需要一种方法来检查约束是否有效,但我不需要启用它。在启用它们之前,我需要知道约束是否正确/错误。

如果我使用通常的代码,同时启用它:

alter table ATEST_B with check check constraint all

否则,如果我使用nocheck子句,则不会检查约束:

alter table ATEST_B with check nocheck constraint all

由于

3 个答案:

答案 0 :(得分:0)

您可以使用虚拟表复制实际表格并检查您的约束。如果确定则丢弃虚拟表和约束。在实际的桌子上应用相同的内容。

   SELECT * INTO A_DUMMY FROM ATEST_B

答案 1 :(得分:0)

运行查询以测试违反您要检查的约束的数据。

答案 2 :(得分:0)

期待我找到了DBCC命令:

DBCC CHECKCONSTRAINTS ('fk_name')

该命令返回所有不尊重外键的值。它有点详细,我没有得到是/否答案,但它运行正常。