我正在尝试在我的数据库中管理CreatedBy和UpdatedBy字段的所有表上创建INSERT TRIGGER和UPDATE TRIGGER。
我遇到的问题是以下是我的INSERT触发器:
UPDATE MyTable
SET CreatedBy = INSERTED.CreatedBy,
InsertDate = GetDate(),
UpdatedBy = INSERTED.UpdatedBy,
UpdateDate = GetDate()
FROM INSERTED
WHERE MyTable.Id = INSERTED.Id
问题是此UPDATE语句还会触发UPDATE触发器。我不可能发生这种情况。我该如何防止这种情况?
答案 0 :(得分:0)
我找到了一个名为IF TRIGGER_NESTLEVEL()的内置SQL函数。
我能够使用以下内容包装更新触发器,以防止在插入触发器运行时更新触发器运行:
IF TRIGGER_NESTLEVEL() < 2
--Trigger script here
END