【发布时间】:2018-04-23 19:35:37
【问题描述】:
我创建了一个新触发器,可以让我在更新后创建一个日志,但是即使我认为它应该可以工作,但我得到了以下错误:
超过了视图、存储过程、函数或触发器的最大嵌套级别(限制: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
【问题讨论】:
-
Log_Notes 表上是否还有另一个触发器?
-
是的,目前有 3 个
-
可能是其中一个触发器导致了错误。您需要为他们发布代码,以便我们帮助找到它。您在上面发布的 ALUMNS 上的触发器很好。
-
这里有点不对劲。您不能拥有与同一架构中的表同名的触发器。显然你已经改变了一些东西,因为这不会像发布的那样工作。您会收到重复的对象名称错误。数据库中已经有一个名为“Log_Notes”的对象。
-
你说得对,对不起,名字是TR_Log_Notes 谢谢
标签: sql sql-server triggers