【发布时间】:2015-01-08 00:39:10
【问题描述】:
下面是我的触发器,不是递归调用的,请解释一下
USE [TESTING]
GO
/****** Object: Trigger [dbo].[UPDATETRIGGER] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[UPDATETRIGGER] on [dbo].[TEST]
FOR UPDATE
AS
UPDATE dbo.TEST
SET lastEditedDate=GetDate()
FROM INSERTED newdata
WHERE TEST.MasterK = newdata.MasterK
【问题讨论】:
-
递归是什么意思?
-
调用触发器本身。因为里面更新的表是有触发器的。
-
需要不递归调用它的原因,因为在更新 TEST 表时调用此触发器,现在此触发器正在更新 TEST 表.. 所以它再次更新表,然后如此由于表已更新,因此调用了触发器 .. 现在它应该是循环的,但这没有发生,我需要它没有发生的原因。下面是我们在 ms sql 上执行 sp_configure 时递归和嵌套触发器的值。这里我们没有关闭该属性,所以为什么它没有发生
-
服务器触发器递归 0 1 1 1 嵌套触发器 0 1 1 1
标签: sql-server tsql recursion database-trigger