使用SQL语句向已有数据表添加约束

Posted gcm_walker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SQL语句向已有数据表添加约束相关的知识,希望对你有一定的参考价值。

如果向存在数据的表里添加约束,有可能会出现数据不符合检查约束而造成添加约束失败。

如:

这是一个表,为身份证号添加检查约束。

USE DEmo--指向当前操作的数据库
GO
ALTER  TABLE Employee
ADD  CONSTRALNT CK_EmployeeID CHECK(LEN(EmployeeID=18)

然后会出现

报错意思是数据表里面的身份证号现有数据有不等于18的,与检查约束冲突,会添加失败。

用ALTER  TABLE Employee+ WITH NOCHECK可以解决。

WITH NOCHECK表示:

对表中现有的数据不做检查,只对添加约束之后在录入的数据进行检查。

以上是关于使用SQL语句向已有数据表添加约束的主要内容,如果未能解决你的问题,请参考以下文章

sql server 对已有数据的表,添加核查约束 [失败],请使用with nocheck 子句

Oracle 数据库表中已有重复数据添加唯一键(唯一约束)

2 - SQL Server 2008 之 使用SQL语句为现有表添加约束条件

如何在SQL表中的性别进行check约束?

17.SQL 约束

请问下用SQL语句为表添加约束可不可用用判断