Msg 547 The ALTER TABLE statement conflicted with the CHECK constraint "".

简介:

创建约束出现下面的错误:

 

Msg 547, Level 16,State 0, Line 2

The ALTER TABLEstatement conflicted with the CHECK constraint "chk_id". The conflictoccurred in database "test", table "dbo.test_CONSTRAINT",column 'ID'.

 

 

这个错误说明现有的表中数据超过了约束的限制,所以无法插入。一般我们需要将表中数据梳理完之后重新创建,但是可能存在一种状况比如以前确实只有5位的数据,现在升级系统后变为8位以前的数据还要保留。解决这个问题可以使用WITH NOCHECK参数。

 

CREATE TABLE test_CONSTRAINT

(

ID INT

)

--插入一条记录误

INSERT INTO test_CONSTRAINTVALUES(100000)

select * fromtest_CONSTRAINT

 

--创建约束(只允许-10000

ALTER TABLE dbo.test_CONSTRAINTADDCONSTRAINT id_checkCHECK(idbetween 1and 10000);

 

Msg 547, Level 16,State 0, Line 2

The ALTER TABLEstatement conflicted with the CHECK constraint "chk_id". The conflictoccurred in database "test", table "dbo.test_CONSTRAINT",column 'ID'.

 

--WITH NOCHECK 以避免根据现有行验证该约束,从而允许添加该约束

ALTER TABLE dbo.test_CONSTRAINTWITHNOCHECK

ADD CONSTRAINT id_checkCHECK(idbetween 1and 10000);

 

-- 重新启用约束

ALTER TABLE dbo.test_CONSTRAINTCHECKCONSTRAINTid_check;

 

--插入违反约束的数据报错

INSERT INTO test_CONSTRAINTVALUES(100000)

 

Msg 547, Level 16,State 0, Line 1

The INSERTstatement conflicted with the CHECK constraint "id_check". Theconflict occurred in database "test", table"dbo.test_CONSTRAINT", column 'ID'.

The statement hasbeen terminated.


本文转自 lzf328 51CTO博客,原文链接:

http://blog.51cto.com/lzf328/1031390


相关文章
|
运维 安全 Cloud Native
阿里云云安全中心不同版本的区别
阿里云云安全中心不同版本的区别,云安全中心基础版免费、防病毒班432元一年、高级版优惠价969元一年,还有企业版和旗舰版可选,阿里云百科分享阿里云安全中心详细介绍,包括云安全中心功能、不同版本价格表以及有必要购买说明
771 0
|
人工智能 开发者
|
Docker 容器
【Docker】掌握 Docker 镜像操作:从基础到进阶
【Docker】掌握 Docker 镜像操作:从基础到进阶
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
816 86
|
前端开发
如何制定适合前端工程化的分支策略?
如何制定适合前端工程化的分支策略?
275 61
|
存储 编解码 UED
网站图片JPG、PNG、GIF哪个好,该选择谁
网站图片JPG、PNG、GIF哪个好,该选择谁
830 0
|
SQL 关系型数据库 MySQL
binlog2sql的安装及使用
binlog2sql的安装及使用
403 2
|
JSON 运维 安全
深入探索Linux的lsns命令:处理与分析Linux命名空间
`lsns`命令是Linux中用于查看命名空间信息的工具,帮助管理和隔离系统资源。它显示命名空间的状态、类型、进程和挂载点,适用于性能优化、故障排查。命令特点包括丰富的参数选项(如 `-t`、`-p`、`-n`),清晰的表格输出和JSON格式支持。示例:列出所有命名空间用`lsns`,列出网络命名空间用`lsns -t net`。使用时注意权限,结合其他工具,并考虑版本兼容性。
|
供应链 安全 Shell
|
消息中间件 RocketMQ 微服务
微服务异步架构---MQ之RocketMQ(二)
“我们大家都知道把一个微服务架构变成一个异步架构只需要加一个MQ,现在市面上有很多MQ的开源框架。到底选择哪一个MQ的开源框架才合适呢?”
微服务异步架构---MQ之RocketMQ(二)