Sel*_*ınç 2 t-sql sql-server sql-server-2014
What is the difference between these scripts?
ALTER TABLE Post_Send WITH NOCHECK CHECK CONSTRAINT [My_FOREIGN_KEY];
GO
ALTER TABLE Post_Send CHECK CONSTRAINT [My_FOREIGN_KEY];
GO
Run Code Online (Sandbox Code Playgroud)
CHECK CONSTRAINT启用约束。(是的,应该是这样ENABLE。)WITH NOCHECK这样做而不检查现有数据。因此,令人困惑的语法WITH NOCHECK CHECK CONSTRAINT可以在不检查现有数据的情况下启用约束。
从手册:
指定是否针对新添加或重新启用
FOREIGN KEY或CHECK约束验证表中的数据。如果未指定,WITH CHECK则假定用于新约束,并WITH NOCHECK假定用于重新启用的约束。
由于您要重新启用现有约束,因此WITH NOCHECK是默认值,并且这两个语句完全相同。WITH CHECK CHECK CONSTRAINT将重新启用约束,同时检查现有数据是否存在违规(并将外键标记为受信任以进行过程中的优化,如果您绕过检查,则不会发生这种情况)。
| 归档时间: |
|
| 查看次数: |
15921 次 |
| 最近记录: |