create trigger tr_process on A
for insert,update,delete
as
insert b select * from inserted

解决方案 »

  1.   

    create trigger tr_process on A
    for insert,update,delete
    as
    insert b select * from inserted union all select * from deleted
      

  2.   

    A表和B表的結構不同
    如:A(id,name,sex,address)
        B(id,name,sex,address,new(name),new(adress))
      

  3.   

    那就要看你的表结构,对于修改来说,如果主键都被修改,那么不能保证inserted和deleted表的顺序,在这种情况下,必须有字段能标识两个表数据之间的对应关系.
      

  4.   

    A表中進行insert,update,delete時,A表中更新的數據和被更新的數據將插入到B表中,並不需要保證兩表的順序。兩表的主鍵相同。
      

  5.   


    Create Trigger [Update_B] On A
    FOR UPDATE
    AS
    Insert B Select T1.id,T1.name,T1.sex,T1.address,T2.name,T2.address from Deleted T1 Inner Join Inserted  T2 On T1.d=T2.id
    GO
      

  6.   

    "A表中進行insert,update,delete時,A表中更新的數據和被更新的數據將插入到B表中,並不需要保證兩表的順序。兩表的主鍵相同。"
    也就是说,你能保证主键不被修改??  前面已经说过了,如果主键修改的情况下,需要另外的字段确定修改前后记录的对应关系.
      

  7.   

    A表和B表的結構不同
    如:A(id,name,sex,address)
        B(id,name,sex,address,new(name),new(adress))--如果不存在主键被修改的问题,则将触发器修改如下:
    create trigger tr_process on A
    for insert,update,delete
    as
    insert b(id,name,sex,address,[new(name)],[new(adress)])
    select d.id,d.name,d.sex,d.address,i.name,i.address
    from inserted i full join deleted d on i.id=d.id  --假设id是主键(用于保证修改前后记录对应关系的字段)
      

  8.   

    select d.id,d.name,d.sex,d.address,i.name,i.address
    from inserted i full join deleted d on i.id=d.id
    這當中的i,d是不是表示insert和delete的意思