首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

触发器小疑点

2013-06-25 
触发器小问题我在table1里面建立了一个触发器,触发器的内容是 只要table1 里面有新增,删除,或更改就将 tab

触发器小问题
我在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

热点排行