当前位置: 代码迷 >> Sql Server >> 触发器小疑点
  详细解决方案

触发器小疑点

热度:95   发布时间:2016-04-24 22:41:57.0
触发器小问题
我在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

------解决方案--------------------
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 
------解决方案--------------------
引用:
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)……


如果是update和delete,那么光改称inserted没用。
------解决方案--------------------
我觉得你这个题目很矛盾,既然你的表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
  相关解决方案