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

本表触发器,只好触发一次吗(不能类似“递归”循环吗)

2012-11-09 
本表触发器,只能触发一次吗(不能类似“递归”循环吗)?当修改一条记录,触发修改本表符合条件的记录,直到没有

本表触发器,只能触发一次吗(不能类似“递归”循环吗)?
当修改一条记录,触发修改本表符合条件的记录,直到没有满足条件触发结束。但是结果只触发了一次。触发器不能有类似递归的操作吗?

表结构(单表目录树)
nodeid pid mark
1 null 0
2 1 0
3 2 0
4 3 0
触发器

SQL code
 DECLARE @PID varchar(4) SELECT @PID=PID from Inserted; update database set Mark=1 where NodeID=@PID


执行
SQL code
update database set Mark=1 where NodeID=4

为什么只触发了一次,记录3和4被修改为mark1呢?
如果全部触发成功,所有的记录mark都应该修改成1啊

[解决办法]
触发器会执行内部符合条件的语句,然后等待下一次触发,而且通过传参数来触发的话是不行的。

热点排行