我是建一张表,表中有一列是email 输入:要求必须要有“@”,请问怎么弄???添加什么约束啊

解决方案 »

  1.   

    个人觉得在前台做好约束更好可以直接提示user不让插入
      

  2.   

    declare @t table(email varchar(20) check(charindex('@',email)>0))
    insert @t select '@aa'
    insert @t select 'a'
    /*
    (影響 1 個資料列)伺服器: 訊息 547,層級 16,狀態 1,行 3
    INSERT 陳述式與 COLUMN CHECK 條件約束 'CK__@t__email__182C9B23' 發生衝突。衝突發生於資料庫 'tempdb',資料表 '#173876EA', column 'email'。
    陳述式已經結束。
    */
      

  3.   

    create table T(col varchar(20))alter table t add constraint ck_name check(col like '[@][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')insert T select '@12345678'
    select * from Tdrop table Tcol                  
    -------------------- 
    @12345678(所影响的行数为 1 行)create table T(col varchar(20))alter table t add constraint ck_name check(col like '[@][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')insert T select '@1234567A'
    select * from Tdrop table T服务器: 消息 547,级别 16,状态 1,行 1
    INSERT 语句与 COLUMN CHECK 约束 'ck_name' 冲突。该冲突发生于数据库 'pubs',表 'T', column 'col'。
    语句已终止。
    col                  
    -------------------- (所影响的行数为 0 行)参考
      

  4.   

    alter table tb
    add constraint ck check(charindex('@',email)>0)