读书人

怎么在删除表的每一行的时候都触发Del

发布时间: 2012-02-06 15:52:45 作者: rapoo

如何在删除表的每一行的时候都触发Delete的触发器,或者说怎么给表的每一行都添加一个触发器。
求助一个SQL触发器的问题,我创建了一个触发器
create trigger Delete_Trig
on Table_T
instead of delete
as ……
这个触发器只有在一次删除语句后执行一次,可是我想要每次删除一行的时候执行一次,这样的触发器要怎么写啊。
急啊,拜托各位了

[解决办法]
触发器针对操作触发,不是对行触发.

当你写了个delete触发器, 一次删除n(n>=1)条记录时,触发器只执行一次操作,但 deleted表中却记录了你此次操作删除的所有行.

SQL code
create trigger ton tbfor deleteas   inset log表 (字段列表) select 要插入的字段列表 from deleted
[解决办法]
SQL code
/*Table1有c1,c2两列,c1是char类型的,c2是int型的Table2有c3,c4两列,c2是char类型的,c4是int型的但删除Table1中的列的时候,根据c2中的数值,把Table2中c3的值等于c1值的这行的c4值减去删除掉的c2的值 */create trigger tr_teston Table1for deleteasset nocount onupdate a set a.c4=a.c4-b.c4 from Table2 a inner join DELETED b on a.c3=b.c1set nocount offgo
[解决办法]
你是不是在查询分析器中只执行了这一句?
update a set a.c4=a.c4-b.c4 from Table2 a inner join DELETED b on a.c3=b.c1

读书人网 >SQL Server

热点推荐