关于SQL server 2005 中创建check约束 我要编写一个零件规格表,有规格ID和零件ID,规格ID是在零件ID后加三个任意数字,我尝试创建check约束表达式【规格ID】=【零件ID】###,约束创建成功,添加一条记录,零件ID为02,规格为02001,出现“INSECT语句与CHECK约束冲突”的提示,这个是怎么回事?能实现“规格ID是在零件ID后加三个任意数字”这个功能吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是采用GUI操作,点选规格ID属性,创建CHECK约束,表达式就是([规格ID]='零件ID###')刚接SQL,比较菜,请指导~~~ create table yourtablename(id int not null,规格id varchar(255),零件id varchar(255),constraint chk_guige check (len(规格id)=5 and left(规格id,2)=零件id))差不多这个意思 create table tb( pid varchar(10), cid varchar(15), constraint ch_tb check (left(cid,len(cid)-3) = pid))goinsert into tbselect '01','01002'select *from tbinsert into tbselect '02','01002'drop table tb/**************(1 行受影响)pid cid---------- ---------------01 01002(1 行受影响)消息 547,级别 16,状态 0,第 8 行INSERT 语句与 CHECK 约束"ch_tb"冲突。该冲突发生于数据库"model",表"dbo.tb"。语句已终止。 insert into tbselect '01','01002'select *from tbinsert into tbselect '02','01002'insert into tbselect '012','012002'select *from tbinsert into tbselect '013','012002'/***********(1 行受影响)pid cid---------- ---------------01 01002(1 行受影响)消息 547,级别 16,状态 0,第 8 行INSERT 语句与 CHECK 约束"ch_tb"冲突。该冲突发生于数据库"model",表"dbo.tb"。语句已终止。(1 行受影响)pid cid---------- ---------------01 01002012 012002(2 行受影响)消息 547,级别 16,状态 0,第 17 行INSERT 语句与 CHECK 约束"ch_tb"冲突。该冲突发生于数据库"model",表"dbo.tb"。语句已终止。 (len(规格id)=5 and left(规格id,2)=零件id)楼主要注意这里,有必要要自己改动下。 我看他们好像都是把零件编号看成2位了,貌似零件编号任意位,而规格id却一直是零件标号+三位alter table tbadd constraint ck_name check(left(规格id,len(规格id-3))=零件id) 分离数据库的语句有哪些? 存储过程中使用in的问题 怎样从一个字段中截取汉字之前的部分? 请问用ADO访问本地数据库的代码是怎样的? 视图字段过多,会不会影响速度? 请教一个sql语句写法? sqlserver数据库如何加密 如何检索一个月内连续登入的用户? 求一查询语句,统计每个人的申请数目, 立项数目, 结项数目 ,请高手请指教!!! 挑战SQL语句极限,怎样将。。。。。。。。。。。。。。????????? 菜鸟求解,急! 请问如果给一个mssql数据库文件(包括数据库和日志文件)加密?
刚接SQL,比较菜,请指导~~~
create table yourtablename
(
id int not null,
规格id varchar(255),
零件id varchar(255),
constraint chk_guige check (len(规格id)=5 and left(规格id,2)=零件id)
)差不多这个意思
create table tb
(
pid varchar(10),
cid varchar(15),
constraint ch_tb check (left(cid,len(cid)-3) = pid)
)
goinsert into tb
select '01','01002'select *
from tbinsert into tb
select '02','01002'drop table tb/**************(1 行受影响)
pid cid
---------- ---------------
01 01002(1 行受影响)消息 547,级别 16,状态 0,第 8 行
INSERT 语句与 CHECK 约束"ch_tb"冲突。该冲突发生于数据库"model",表"dbo.tb"。
语句已终止。
insert into tb
select '01','01002'select *
from tbinsert into tb
select '02','01002'insert into tb
select '012','012002'select *
from tbinsert into tb
select '013','012002'/***********(1 行受影响)
pid cid
---------- ---------------
01 01002(1 行受影响)消息 547,级别 16,状态 0,第 8 行
INSERT 语句与 CHECK 约束"ch_tb"冲突。该冲突发生于数据库"model",表"dbo.tb"。
语句已终止。(1 行受影响)
pid cid
---------- ---------------
01 01002
012 012002(2 行受影响)消息 547,级别 16,状态 0,第 17 行
INSERT 语句与 CHECK 约束"ch_tb"冲突。该冲突发生于数据库"model",表"dbo.tb"。
语句已终止。
(len(规格id)=5 and left(规格id,2)=零件id)楼主要注意这里,有必要要自己改动下。
alter table tb
add constraint ck_name check(left(规格id,len(规格id-3))=零件id)