首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请解释SQLServer用于创建检查约束的语法。

问请解释SQLServer用于创建检查约束的语法。
EN

Stack Overflow用户
提问于 2010-11-15 20:14:26
回答 1查看 406关注 0票数 3

当我右键单击默认约束并要求Server为其创建一个创建脚本时,它将生成以下代码:

代码语言:javascript
复制
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/

我不知道您可以启用和禁用约束。凉爽的!

赛斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-15 20:22:37

第一个语句创建约束,但是由于它是用NOCHECK创建的,所以在创建时没有验证现有数据。

第二个语句只是打开约束,在技术上是多余的。

就我个人而言,我倾向于使用WITH CHECK选项编写第二条语句,该选项将根据约束验证所有现有数据,并防止约束成为不可信。

代码语言:javascript
复制
ALTER TABLE [dbo].[tblEventTurnJudgeStartValues] WITH CHECK CHECK CONSTRAINT [tblEventTurnJudgeStartValues_ExecutionToggle]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4188395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档