当前位置: 代码迷 >> Sql Server >> 本表触发器,只好触发一次吗(不能类似“递归”循环吗)
  详细解决方案

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

热度:59   发布时间:2016-04-25 01:12:52.0
本表触发器,只能触发一次吗(不能类似“递归”循环吗)?
当修改一条记录,触发修改本表符合条件的记录,直到没有满足条件触发结束。但是结果只触发了一次。触发器不能有类似递归的操作吗?

表结构(单表目录树)
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啊

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