
摘要:微信搜索【三桥君】 本篇讲述的是在已经创建好表且有数据的情况下,增加CHECK约束的报错问题
当我给数据库中已经创建好的Student表,增加约束条件。
--增加student表的约束条件,要求性别只允许取“男”或“女”。
ALTER TABLE Student
ADD CONSTRAINT C_Student CHECK (sex IN ('男','女'))语法没错,但是运行出现报错。如图:

消息 547,级别 16,状态 0,第 41 行 ALTER TABLE 语句与 CHECK 约束"C_Student"冲突。该冲突发生于数据库"ScoreDB",表"dbo.Student", column ‘sex’。
正常情况下,我们创建好数据表,然后用该语法定义增加约束是没问题的。 但是经本人研究发现,当数据表中有数据时,增加约束会出现该问题。 因为该Student表中是有数据的,所以增加不了约束。
sql语句方式: 把相关数据表的数据删除掉,再执行该语句。 如果删除表数据还是有问题,建议重建数据库,先建立好关系,再导入数据试试。
可视化向导方式: 把“在创建或重新启动时检查现有数据”改为否。






文章整理不易,如有帮助请点赞关注支持,谢谢!微信搜索【三桥君】,回复【关注】有我准备的一份资源大礼包。后续持续更新~~~