ALTER TABLE 语句与 COLUMN CHECK 约束 冲突 要怎么解决?

时间:2022-04-24 19:11:47
我用alter table 向表1中的列1增加一个约束1
执行结果提示我:
ALTER TABLE 语句与 COLUMN CHECK 约束1 冲突 

一般是指表中已有这个约束了。
但我
exec sp_helpconstraint 表1
根本没有约束1的存在

那为什么还会有冲突呢?要怎么解决?

(向这个表中其他列添加同样功能的约束都没有问题)

5 个解决方案

#1


是不是列中存在不满足约束1的值

#2


declare @name varchar(20)

select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('tablename') and b.id=a.cdefault and a.name='field1' and (b.name like 'DF%' or b.name like 'C%')

exec('alter table tablename drop constraint '+@name) 

alter table tablename drop column field1

#3


鲨至说得对,我有一些测试数据在里面
哈哈,真是傻瓜啊我

#4


大力写的 对我也很有启发 
是不是说如何把潜在的约束去掉?

有个问题
a.cdefault是什么?是指字符型的默认值吗?

#5


结了吧。问题也解决了

#1


是不是列中存在不满足约束1的值

#2


declare @name varchar(20)

select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('tablename') and b.id=a.cdefault and a.name='field1' and (b.name like 'DF%' or b.name like 'C%')

exec('alter table tablename drop constraint '+@name) 

alter table tablename drop column field1

#3


鲨至说得对,我有一些测试数据在里面
哈哈,真是傻瓜啊我

#4


大力写的 对我也很有启发 
是不是说如何把潜在的约束去掉?

有个问题
a.cdefault是什么?是指字符型的默认值吗?

#5


结了吧。问题也解决了