注册 登录
编程论坛 SQL Server论坛

CHECK约束问题

yhxyh 发布于 2007-01-05 16:03, 1909 次点击
alter table studentinfo
add constraint ck_student_sex
check
(student_sex ='男'or student_sex='女')

出现下列提示:服务器: 消息 547,级别 16,状态 1,行 1
ALTER TABLE 语句与 COLUMN CHECK 约束 'ck_student_sex' 冲突。该冲突发生于数据库 'book',表 'studentinfo', column 'student_sex'。
11 回复
#2
bygg2007-01-05 16:15

是不是可以用触发器???

#3
yhxyh2007-01-05 16:41
我想实现这个的方法应该很多,我主要是想知道这是怎么回事!
#4
棉花糖ONE2007-01-05 16:50

create table student(name varchar(20),id int,sex varchar(20))
alter table student add constraint ck_student_sex
check
(sex ='男'or sex='女')
用你的代码运行没问题啊,你的表是不是有和其它表建立主外键关系啊

#5
angeloc2007-01-05 17:28
是不是存在非法数据了?
#6
ninggang2007-01-06 13:37
很明显这个问题,与你数据库中的已经存在的表的数据不一致,呵呵,可以在加检查约束前,不检查数据库里面原来的数据
alter table studentinfo
add constraint ck_student_sex
check
(student_sex ='男'or student_sex='女')
With nocheck
不知道位置对没有,呵呵,好久没有用过了
#7
棉花糖ONE2007-01-06 13:38
他的代码没问题,可能是建约束之前表中已存在非法数据
#8
ninggang2007-01-06 13:39
恩,我也这样认为,呵呵
#9
yhxyh2007-01-06 23:36

谢谢大家,我再看看.

#10
smilerapple2007-02-09 15:46
create table student (name varchar(20),id int ,sex varchar(20))
alter table student add constraint ck_student_sex
check
(sex='男' or sex='女')
#11
棉花糖ONE2007-02-09 16:40
如果原来的表中存在非法数据就用下面的语句可以忽略非法数据
alter table student with nocheck add constraint ck_student_sex
check
(sex='男' or sex='女')
#12
初学Delphi2007-02-09 17:27
字段sex对应的值有不是‘男’or‘女’ 的吧?
1