读书人

触发器小疑点

发布时间: 2013-06-25 23:45:42 作者: rapoo

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

读书人网 >SQL Server

热点推荐