0078_ADB上面是我要的数,必须是8位,前2位必须是00,3-4必须是数字,第五必须是下划线,最后三位必须是字母A-Z请问这要怎么做到,有几种方法,给我写下的简单就好,谢谢

解决方案 »

  1.   

    这个在数据入库的 时候检查数据规范吧,不用SQL来做这样的检查吧?
      

  2.   


    --生成数据时判断下
    if left(@data,2)='00' and ... and ...
    begin
        ...
    end
    else
    begin
        ...
    end
      

  3.   

    alter table
     tb
    add
     constraint ck_sex 
    check
    (len(col)=8 
    and
     left(col,2)='00' 
    and
     substring(col,3,2) like [0-9] 
    and
     substring(col,5,1)='_'
    and
     substring(col,6,3) like [A-Z] )
      

  4.   

    declare @c varchar(8)
    set @c='0078_ADB'left(@c,2)='00' and isnumeric(substring(@c,3,2)) and substring(@c,5,1)='_' and substring(@c,6,1) between 'A' and 'Z' and substring(@c,7,1) between 'A' and 'Z' and substring(@c,8,1) between 'A' and 'Z'
      

  5.   

    你要插入前程序里可以判断最好在程序里判断(8楼)
    没这个权限就在check约束里判断(7楼)