WITH CHECK | WITH NOCHECK
指定资料表中的资料是否经过新增或重新启用的 FOREIGN KEY 或 CHECK 条件约束验证过。若未指定,WITH CHECK 会采用新的条件约束,而 WITH NOCHECK 会采用重新启用的条件约束。
WITH CHECK 和 WITH NOCHECK 子句不能作为 PRIMARY KEY 和 UNIQUE 条件约束。
如果不要以新 CHECK 或 FOREIGN KEY 条件约束验证现有的资料,请使用 WITH NOCHECK。除了少数情况之外,很少建议如此使用。在所有未来的更新中,都会评估新的条件约束。如果使用不符合条件约束的资料来更新资料列,则在加入条件约束时,WITH NOCHECK 所抑制的任何条件约束违规可能会使未来无法更新。
查询最佳化器并不考虑条件约束定义的 WITH NOCHECK。直到使用 ALTER TABLE table CHECK CONSTRAINT ALL 重新启用所有这些条件约束之前,这些条件约束都会被忽略,。