要添加一个约束,但是又不将其应用到已存在的数据中,恶意在执行ALTER TABLE语句添加时使用WITH NOCHECK选项,这样新增的约束就不会去处理已存在的数据,而只会对新增的数据进行约束检查,具体语法如下
ALTER TABLE PRODUCTS WITH NOCHECK ADD CONSTRAINT CM_SPORTSSTORE_PRICE CHECK (PRICE>0)
NOCHECK还有一个用处就是禁用约束,禁用就不需要删除这个约束,如下代码是把上面的约束禁用
ALTER TABLE PRODUCTS NOCHECK CONSTRAINT CM_SPORTSSTORE_PRICE
如果要再重新启用,则可以这样
ALTER TABLE PRODUCTS CHECK CONSTRAINT CM_SPORTSSTORE_PRICE