初学者问题~SQL server约束表达
1.前2位为0 
2.3-4位为数字 
3.第5位为下划线_ 
4.6-8位为字母

解决方案 »

  1.   

    check (col like '00'+'[0-9][0-9]'+'_'+'[a-zA-Z][a-zA-Z][a-zA-Z]')
      

  2.   

    create table tb
    (col varchar(8) 
           constraint chk_col check(col like '00[0-9][0-9]_[a-zA-Z][a-zA-Z]')
    )
     
    insert into tb values('0012125')
    insert into tb values('0012_aB')
    insert into tb values('0012_a3')
    insert into tb values('001d_AA')
     
    select * from tb
     
    drop table tb
      

  3.   

    create table tb
    (col varchar(8) 
           constraint chk_col check(col like '00[0-9][0-9]_[a-zA-Z][a-zA-Z][a-zA-Z]')
    )
     
    insert into tb values('0012125d')
    insert into tb values('0012_aBB')
    insert into tb values('0012_a3B')
    insert into tb values('001d_AAc')
     
    select * from tb
     
    drop table tb
      

  4.   

    _下横行要用[]转义符
    create table T(Col nvarchar(8)check (col like '00[0-9][0-9][_][a-zA-Z][a-zA-Z][a-zA-Z]'))insert T select '0012_abc'--正确insert T select '00121abc'--少了"_"符号
      

  5.   

    if object_id('tb') is not null
    drop table tb
    go
    --1.前2位为0
    --2.3-4位为数字
    --3.第5位为下划线_
    --4.6-8位为字母 
    create   table   tb(s varchar(50))  
    alter table tb 
    add constraint ck_index CHECK (s like '00[0-9][0-9][0-9]_[a-z][a-z][a-z]')insert into tb select '00123_abc'