本表触发器,只能触发一次吗(不能类似“递归”循环吗)?
当修改一条记录,触发修改本表符合条件的记录,直到没有满足条件触发结束。但是结果只触发了一次。触发器不能有类似递归的操作吗?
表结构(单表目录树)
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啊
------解决方案--------------------
触发器会执行内部符合条件的语句,然后等待下一次触发,而且通过传参数来触发的话是不行的。