create  trigger trg_aaa
on 表aaainstead of update
asbegin        
set nocount on  insert 表bbb
(字段1,字段2,字段3,字段4,字段5)
select d.字段1,d.字段2,d.字段3,d.字段4,d.字段5 from deleted dend
---------------------------------
我想实现的目标是表aaa当是更新的记录,表bbb当中原来的记录,触发器执行后表bbb中有记录,表aaa当中的记录没有改变,求高人指点

解决方案 »

  1.   

    不了解instead of触发器远离为什么用instead of触发器,改称AFTER触发器吧create trigger trg_aaa
    on 表aaa
    AFTER update
    asbegin    
    set nocount on   insert 表bbb
    (字段1,字段2,字段3,字段4,字段5)
    select d.字段1,d.字段2,d.字段3,d.字段4,d.字段5 from deleted dend
      

  2.   

    instead of触发器应该如下写:create trigger trg_aaa
    on 表aaa
    instead of update
    as
    begin
      
    set nocount on   
    insert 表bbb
    (字段1,字段2,字段3,字段4,字段5)
    select d.字段1,d.字段2,d.字段3,d.字段4,d.字段5 from deleted dUPDATE A SET
       COL1 = I.COL1
       ,COL2 = I.COL2
       ,...               -- 除了 唯一而且不修改字段
    FROM 表aaa A
    ,INSERTED I,DELETED D
    WHERE A.主键= D.主键
    AND D.唯一而且不修改字段= I.唯一而且不修改字段
    end
      

  3.   

    after触发器用过,但是字段中有text等对象,没办法用.我也想用after触发器啊,省事.
      

  4.   

    那就不要用触发器,在所有UPDATE AAA的操作增加一句INSERT BBB的语句,必要的话组成一个事务或者分表,把TEXT字段分开,设计上本来大字段就不应该放在经常修改的表