比如有个表 TableProduct
我想建个触发器
当TableProduct表发生Insert/Update/Delete时把发生变化的数据插入到一个日志表里面去,请问这个触发器该怎么写啊?

解决方案 »

  1.   

    create trigger tr_stest_i on TableProduct for insert
    as
     insert 日志表 
    select * from inserted
    go
    create trigger tr_stest_i on TableProduct for delete
    as
     insert 日志表 
    select * from deleted
    go
    create trigger tr_stest_i on TableProduct for update
    as
     insert 日志表 
    select * from inserted
    go
      

  2.   

    --不知道這樣可以不?
    create trigger t1
    on TableProduct
    for insert,update,delete
    AS
    if(update(col1) or update(col2) or update(col3) ..)
    begin
       insert into 日志表  select * from inserted
    end
    else
    begin
       insert into 日志表  select * from deleted
    end
    Go
      

  3.   

    當然,如果你update時,要記錄的是原來的record,而不是update後的record,
    那update時,也要從deleted表抓.