我写了一个更新触发器,它执行可能调用自身的更新(这是我想要的行为)。如何编写递归触发器
不幸的是,触发器没有调用自己,我不明白为什么。这个触发器只是简单地改变任何子记录的值(基于父键),然后我期望在那个孩子被更新后触发器应该再次被触发,并且该孩子的任何子记录被更新等等。
我可以手动运行相同的更新触发器成功完成,并按照我的预期设置子记录。
我已经跑版EXEC sp_configure嵌套触发器“,并已返回
最小:0,最大:1,CONFIG_VALUE:1,run_value:1,所以递归似乎开启。
ALTER TRIGGER [dbo].[DataInstance_Trigger]
ON [dbo].[DataInstance]
AFTER UPDATE
AS
BEGIN
UPDATE DataInstance
SET
DataInstance.IsCurrent = i.IsCurrent
FROM DataInstance di
Inner join DataContainer dc on
di.DataContainerId = dc.DataContainerId
Inner join Inserted i on
dc.ParentDataContainerId = i.DataContainerId
WHERE di.IsCurrent != i.IsCurrent
END
什么'EXEC的sp_dboption '数据库名称',“递归triggers''回报? – 2010-07-11 10:48:23