触发后SQL Server中的最大级别嵌套

时间:2018-04-23 19:35:37

标签: sql sql-server triggers

我创建了一个新的触发器,可以让我在更新后创建一个日志,但即使我认为它应该可以工作,我得到以下错误:

  

超出了视图,存储过程,函数或触发器的最大嵌套级别(限制:32)。

它是否可能与触发器的编写方式有关?

ALTER TRIGGER [TR_Log_Notes]
ON ALUMNS
AFTER UPDATE
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @Note_Text VARCHAR (30)
    SET @Note_Text = 'Fields were updated'

    INSERT INTO Log_Notes(Alumn_ID, Note_Text)
        SELECT i.Alumn_ID, @NoteText 
        FROM INSERTED i
END

1 个答案:

答案 0 :(得分:1)

在更新同一个表中的行后,您正在插入log_notes 。这真的是你想要的吗?

如果您打算使用同一个表,那么您应该使用for触发器,并在进入表之前更新每一行。但是,我怀疑你想在另一个表上创建触发器。