这些脚本之间有什么区别?WITH NOCHECK CHECK CONSTRAINT和CHECK CONSTRAINT之间的区别
ALTER TABLE Post_Send WITH NOCHECK CHECK CONSTRAINT [My_FOREIGN_KEY];
GO
ALTER TABLE Post_Send CHECK CONSTRAINT [My_FOREIGN_KEY];
GO
这些脚本之间有什么区别?WITH NOCHECK CHECK CONSTRAINT和CHECK CONSTRAINT之间的区别
ALTER TABLE Post_Send WITH NOCHECK CHECK CONSTRAINT [My_FOREIGN_KEY];
GO
ALTER TABLE Post_Send CHECK CONSTRAINT [My_FOREIGN_KEY];
GO
CHECK CONSTRAINT
使约束。 (是的,它应该是ENABLE
,而不是WITH NOCHECK
这样做,而不检查现有数据。所以混淆语法WITH NOCHECK CHECK CONSTRAINT
启用约束而不检查现有数据。
指定该表中的数据是否或反对 新添加的或重新启用
FOREIGN KEY
或CHECK
约束没有验证。如果未指定 ,则假设新约束为WITH CHECK
,假设重新启用约束为WITH NOCHECK
。
由于您重新启用了现有约束,因此WITH NOCHECK
是默认值,这两个语句完全相同。 WITH CHECK CHECK CONSTRAINT
将重新启用约束,同时还检查现有数据是否存在违规(并将外键标记为可信,以便在过程中进行优化,如果绕过检查,则不会发生这种情况)。
取决于表中是否已经有数据..但添加一个外键,并告诉它NOCHECK是毫无意义,而非愚蠢的IMO –
他们显示相同的效果。 –