gpt4 book ai didi

sql-server - WITH NOCHECK CHECK CONTRAINT和CHECK CONSTRAINT之间的区别

转载 作者:行者123 更新时间:2023-12-03 11:26:59 25 4
gpt4 key购买 nike

这些脚本之间有什么区别?

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启用了约束,而无需检查现有数据。

the manual


指定是否对表中的数据进行验证
新添加或重新启用的FOREIGN KEYCHECK约束。如果不
指定,对于新的约束,假定为WITH CHECK,而WITH NOCHECK
假定重新启用约束。


由于您要重新启用现有约束,因此WITH NOCHECK是默认设置,并且这两个语句执行的操作完全相同。 WITH CHECK CHECK CONSTRAINT将重新启用该约束,同时还要检查现有数据是否存在违规情况(并将外键标记为受信任以进行流程优化,如果绕过该检查则不会发生)。

关于sql-server - WITH NOCHECK CHECK CONTRAINT和CHECK CONSTRAINT之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45140239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com