我在table1里面建立了一个触发器,触发器的内容是 只要table1 里面有新增,删除,或更改就将 table1里面的的内容 更新到table2 里面,然后清空table1里面的内容。 我这个为什么最后table2里面没数据, 正确的该怎么写?
create trigger tg1 on table1 for insert,update,delete
 as
 update table2 set par_code=code from table1 where table1.id=table2.id
 delete table1
 go
 
insert into table1(id,code)values(30,1003)
select *  from Table2

解决方案 »

  1.   

    create trigger tg1 on table1 for insert,update,delete
     as
     update table2 set par_code=code from inserted where table1.id=table2.id
     delete table1
     go
     
    insert into table1(id,code)values(30,1003)
    select *  from Table2 
      

  2.   


    如果是update和delete,那么光改称inserted没用。
      

  3.   

    我觉得你这个题目很矛盾,既然你的表table1每次都清空,怎么可能再会有update和delete操作呢。哈哈
    像你这种情况,就是table1不保留数据,在table1上建立和instead of触发器不可以了吗create table t1(id int,tname nvarchar(20))create table t2(id int ,tname nvarchar(20))
    create trigger tk_g on t1 instead of insert
    as
    insert into t2 select * from inserted