首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【数据库】ALTER TABLE 语句与 CHECK 约束““冲突。该冲突发生于数据库““,表““, column ‘‘

【数据库】ALTER TABLE 语句与 CHECK 约束““冲突。该冲突发生于数据库““,表““, column ‘‘

作者头像
三桥君
发布2025-08-28 10:06:13
发布2025-08-28 10:06:13
2570
举报

摘要:微信搜索【三桥君】 本篇讲述的是在已经创建好表且有数据的情况下,增加CHECK约束的报错问题

一、问题

当我给数据库中已经创建好的Student表,增加约束条件。

代码语言:javascript
复制
--增加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语句方式: 把相关数据表的数据删除掉,再执行该语句。 如果删除表数据还是有问题,建议重建数据库,先建立好关系,再导入数据试试。

方法二

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

  1. 找到Student表,右击约束,点击“新建约束”
在这里插入图片描述
在这里插入图片描述
  1. 左上角自动有一个约束,然后点击图中位置的省略号图标
在这里插入图片描述
在这里插入图片描述
  1. 根据实际情况给它添加约束关系,直接在框中输入或黏贴,定义完关系后点击确定
在这里插入图片描述
在这里插入图片描述
  1. 把“在创建或重新启动时检查现有数据”改为否!!! 注意: 如果数据表中都没有数据,可以默认为是。但是数据表中都有数据才创建约束,就要把这里改为否,才能创建成功。
在这里插入图片描述
在这里插入图片描述
  1. 最后关闭这个页面,会出现是否保存数据,依次点是就行了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、问题
  • 二、分析原因
  • 三、解决办法
    • 方法一
    • 方法二
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档