A表
A列 int
B列  int如果在插入过程中A列的值大于9,则B列自动为1.此时A列清0;

解决方案 »

  1.   

    create trigger tri_insert_tb
    on tb
    instead of insert
    as
    if exists(select 1 from inserted where a>9)
    begin
      insert tb(a,b)
      select 0,1
      from inserted
      where a>9
    end
      
      

  2.   

    create trigger tri_insert_tb
    on tb
    instead of insert
    as
    if exists(select 1 from inserted where a>9)
    begin
      insert tb(a,b)
      select 0,1 from inserted where a>9
      union all
      select a,b from inserted where a<=9
    end
    else
      insert tb select a,b from insertedgo
      

  3.   

    create trigger tri_insert_tb
    on tb
    instead of insert
    as
      insert tb(a,b)
      select 0,1
      from inserted
      where a>9  insert tb(a,b) select a,b from inserted
       where not (a>9)
    go
      

  4.   

    看来基本看错了,除非a is nullfor触发器写法(假设id是主键)
    create trigger tri_insert_tb
    on tb
    for insert
    as
      update tb set
         a=0,b=1
      from tb,inserted i
      where i.id=tb.id  and i.a>9
    go