给一个列增加约束,只能是8位数,前两位是0这我知道,可后面,3-4位为数字,5位为下划线,6-8为字母怎么写条件

解决方案 »

  1.   


    create table tb(id varchar(8) check (id like '00'+'%[0-9][0-9]%'+'_'+'%[a-z][a-z][a-z]%'))
    ???未测试!
      

  2.   

    use tempdb
    Go
    if object_id('mytable') Is Not Null
    Drop Table mytable--给一个列增加约束,只能是8位数,前两位是0这我知道,可后面,3-4位为数字,5位为下划线,6-8为字母怎么写条件  
    Create Table mytable

    Nr nchar(8),
    Constraint CK_mytable_Nr check (len(Nr)=8 And Nr like '00[0-9][0-9][_][A-Za-z][A-Za-z][A-Za-z]')  
    )Insert Into mytable(Nr) values('0012_ASB')Insert Into mytable(Nr) values('00125AdB')
    /*
    訊息 547,層級 16,狀態 0,行 12
    INSERT 陳述式與 CHECK 條件約束 "CK_mytable_Nr" 衝突。衝突發生在資料庫 "tempdb",資料表 "dbo.mytable", column 'Nr'。
    陳述式已經結束。
    */