当我右键单击默认约束并要求Server为其创建一个创建脚本时,它将生成以下代码:
ALTER TABLE [dbo].[tblEventTurnJudgeStartValues] WITH NOCHECK ADD CONSTRAINT [tblEventTurnJudgeStartValues_ExecutionToggle] CHECK (([ExecutionToggle]=(1) OR [ExecutionToggle]=(0) OR [ExecutionToggle]=(-1)))
GO
ALTER TABLE [dbo].[tblEventTurnJudgeStartValues] CHECK CONSTRAINT [tblEventTurnJudgeStartValues_ExecutionToggle]为了记录在案,我理解第一个ALTER语句,但不理解第二个ALTER语句所做的事情。尝试谷歌谷歌的“检查约束”短语,但只得到点击添加约束语法。
谢谢。
赛斯
更新
谢谢乔的回答。找到这个链接有帮助。
http://blog.sqlauthority.com/2009/11/12/sql-server-disable-check-constraint-enable-check-constraint/
我不知道您可以启用和禁用约束。凉爽的!
赛斯
发布于 2010-11-15 20:22:37
第一个语句创建约束,但是由于它是用NOCHECK创建的,所以在创建时没有验证现有数据。
第二个语句只是打开约束,在技术上是多余的。
就我个人而言,我倾向于使用WITH CHECK选项编写第二条语句,该选项将根据约束验证所有现有数据,并防止约束成为不可信。
ALTER TABLE [dbo].[tblEventTurnJudgeStartValues] WITH CHECK CHECK CONSTRAINT [tblEventTurnJudgeStartValues_ExecutionToggle]https://stackoverflow.com/questions/4188395
复制相似问题