这样写
create trigger xxx
 as 
    delete from your_table where username in (select username from inserted where username is null or username ='')可能效率不会很高。不过,你既然不允许它空,那么为什么不设该字段非空呢?

解决方案 »

  1.   

    触发器当然可以创建:如yangzi(笨笨)create trigger name for update
    但这种机制很没有'科学道理'
    你不妨这样解决:
    1.把该字段设为非空.
    2.在插入这条记录之前判断username是否为空
      

  2.   

    我是指对插入的USERNAEM的内容判断是否重复,也就是该字段的内容已经在表内存在时,然后则取消该插入操作,否则继续!!!
      

  3.   

    Create Trigger xxx on table for insert
    as
       if (select count(*) from table
           where 
           username = (select username from inserted)) > 1
       rollback transaction
    goIt will be ok.
      

  4.   

    Create Trigger xxx on table for insert
    as
       if (select count(*) from table
           where 
           username = (select username from inserted)) > 1
       rollback transaction
    goIt will be ok.
      

  5.   

    但只能处理一条一条的insert,若用了
    insert into table 
      select * form table1这种做法,我想我无能为力。
    :(
      

  6.   

    在触发器中使用
    begin tran
    if ...
      rollback tran 
    else
      commit tran
    但限制同楼上所说一样,你的注意增加语句的写法!
      

  7.   

    Create Trigger xxx on table for insert
    asif exists (select * from inserted as a inner join table as b on a.username=b.username)
      rollback transactionreturn