lunlunlun

一、问题

重新做数据库完整性设计作业中的“为电话号码创建合适的约束条件”时将原本写好的语句执行时报错:

Msg 547, Level 16, State 0, Line 1
ALTER TABLE 语句与 CHECK 约束"CK_PHONE"冲突。该冲突发生于数据库"teaching",表"dbo.student", column \'phone\'。

 

二、分析原因

(我上网查的)

正常情况下,我们创建好数据表,然后用该语法定义增加约束是没问题的。
但是经别人研究发现,当数据表中有数据时,增加约束会出现该问题。
因为该Student表中是有数据的,所以增加不了约束。

 

三、解决办法

方法一

sql语句方式:
把相关数据表的数据删除掉,再执行该语句。

如果删除表数据还是有问题,可以重建数据库,先建立好关系,再导入数据试试。

 

方法二

可视化向导方式:
把“在创建或重新启动时检查现有数据”改为否。

1、找到Student表,右击约束,点击“新建约束”

 

 2、左上角自动有一个约束,然后点击图中位置的省略号图标

 

 

3、根据实际情况给它添加约束关系,直接在框中输入或黏贴,定义完关系后点击确定

 

4、把“在创建或重新启动时检查现有数据(Check Existing Data On Creation or Re-Enabling)”改为否!

 

5、关闭页面,保存即可

 

分类:

技术点:

相关文章:

相似解决方案