CREATE TRIGGER 名1 ON table1
FOR INSERT
AS
insert a (tablename,after,changename,data) select 'table1',name,'插入',getdate() from insertedCREATE TRIGGER 名2 ON table1
FOR update
AS
insert a (tablename,before,after,changename,data) select 'table1',b.name,a.name,'更新',getdate() 
from inserted a ,deleted b where a.id=b.id

解决方案 »

  1.   

    CREATE TRIGGER 名1 ON table1
    FOR INSERT,update
    AS
    if not exists (select 1 from deleted)
      insert a (tablename,after,changename,data) select 'table1',name,'插入',getdate() from inserted
    else
      insert a (tablename,before,after,changename,data) select 'table1',b.name,a.name,'更新',getdate() 
    from inserted a ,deleted b where a.id=b.id
      

  2.   

    create trigger tr_table1_insert
    on table1
    for insert
    as
    insert a(tablename,before,[after],changename,data)
    select 'table1',null,name,'插入',getdate() from insertedgocreate trigger tr_table1_delete
    on table1
    for delete
    as
    insert a(tablename,before,[after],changename,data)
    select 'table1',name,null,'删除',getdate() from deletedgocreate trigger tr_table1_update
    on table1
    for update
    as
    insert a(tablename,before,[after],changename,data)
    select 'table1',d.name,i.name,'更新',getdate() from inserted i,deleted d
    where i.id=d.idgotable2的触发器类似。