可以在表中创建检查约束,以使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中的一个或多个列中指定可接受的数据值。
本主题内容
准备工作:
若要使用以下方法创建新的检查约束,请使用:
在您开始之前
安全
权限
需要对表具有 ALTER 权限。
使用 SQL Server Management Studio
创建新的检查约束
在 对象资源管理器中,展开要向其添加检查约束的表,右键单击 “约束 ”,然后单击“ 新建约束”。
在“复选框约束”对话框中,单击“表达式”字段,然后单击省略号(...)。
在 “CHECK 约束表达式” 对话框中,键入 CHECK 约束的 SQL 表达式。 例如,若要将表中的
Product
条目SellEndDate
限制为大于或等于列中日期SellStartDate
的值,或为 NULL 值,请键入:SellEndDate >= SellStartDate OR SellEndDate IS NULL
或者,若要要求列中的条目
zip
为 5 位,请键入:zip LIKE '[0-9][0-9][0-9][0-9][0-9]'
注释
请确保将任何非数值约束值括在单引号 (') 中。
单击 “确定” 。
在“标识”类别中,您可以更改 CHECK 约束的名称并且为该约束添加说明(扩展属性)。
在 “表设计器” 类别中,您可以设置何时强制约束。
致: 在以下字段中选择“是”: 对在创建约束前存在的数据测试约束 在创建或启用时检查现有数据 在此表上发生复制操作时强制约束 强制用于复制 在此表中插入或更新行时强制约束 强制用于 INSERT 和 UPDATE 单击 “关闭” 。
使用 Transact-SQL
创建新的检查约束
在 “对象资源管理器” 中,连接到某个数据库引擎实例。
在标准栏上,单击“新建查询”。
将以下示例复制并粘贴到查询窗口中,然后单击 执行。
ALTER TABLE dbo.DocExc ADD ColumnD int NULL CONSTRAINT CHK_ColumnD_DocExc CHECK (ColumnD > 10 AND ColumnD < 50); GO -- Adding values that will pass the check constraint INSERT INTO dbo.DocExc (ColumnD) VALUES (49); GO -- Adding values that will fail the check constraint INSERT INTO dbo.DocExc (ColumnD) VALUES (55); GO
有关详细信息,请参阅 ALTER TABLE (Transact-SQL)。