我需要建立一个触发器,2个功能:
1、把T1最后一次插入的内容写入T2表中
2、把T1更改的内容在T2表中也作出更改,如T1表对表中某行或多行中的某个字段进行了更改,那T2 表中也要进行更改
类似于视图。

解决方案 »

  1.   

    直接对t1表做触发器就行了.大致方法如下:CREATE TRIGGER trig1
    on authors
    FOR INSERT, UPDATE, DELETE
    AS 
    ......
    GO
      

  2.   


    不太明白..假设T1中只有一个字段"NAME" ,我写入一条记录后,如何把这条记录写入T2表?如何用INSERT,没有条件的话,会把T1 中所有的数据全写入T2 的,还有我更新T1表中某条记录时,T2 如何随着T1的更新也更新??
      

  3.   

    不太明白..假设T1中只有一个字段"NAME" ,我写入一条记录后,如何把这条记录写入T2表?如何用INSERT,没有条件的话,会把T1 中所有的数据全写入T2 的,还有我更新T1表中某条记录时,T2 如何随着T1的更新也更新??----------------------------------------
    在触发器中,插入的记录会保存在inserted的系统表中,删除的记录会保存在deleted的系统表中
    你新插入的记录就在inserted表中.
      

  4.   

    CREATE TRIGGER trT1toT2 
    on T1 
    FOR INSERT, UPDATE
    AS 
      if not exists(select 1 from deleted)--insert 
      begin 
        insert T2 selelect * from inserted; 
      end 
    else --update 
      begin 
        update T2 
        set [NAME]=i.[NAME] 
        from inserted i,deleted d 
        where [NAME]=d.[NAME]; 
      end 这样?
      

  5.   


    我按你这样写后,是可以触发了,但有的时候会出现重复的记录,T1 表是个多人操作的表,有时候可能会出现4-5个人同时往里面插入或更新记录
    我测试了一个下午,得到的结果是,T1表中一共插入了120条新记录,但T2 表中竟然出现了近300条记录,其中很多是1条记录重复了几次的.这个是什么原因?如何解决?谢谢