小编Dun*_*yen的帖子

SQL Server-Table 有许多插入表本身的 AFTER INSERT 触发器

我特意创建了这个例子来代表我的问题。

我创建了这样的表:

CREATE TABLE a
(
  id INT
)
Run Code Online (Sandbox Code Playgroud)

然后我像这样创建了 2 个AFTER TRIGGER

CREATE TRIGGER insert_a
ON a AFTER INSERT
AS
BEGIN
  INSERT INTO a VALUES (1)
END
GO

CREATE TRIGGER insert_a2
ON a AFTER INSERT
AS
BEGIN
INSERT INTO a VALUES(2)
END
GO
Run Code Online (Sandbox Code Playgroud)

之后我插入到表中:

INSERT INTO a VALUES (0)
Run Code Online (Sandbox Code Playgroud)

我得到了结果:

消息 217,级别 16,状态 1,过程 insert_a2,第 5 行 [批处理起始行 0]。

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

我认为这里存在周期性情况。触发器内部的插入,一次又一次地触发触发器。那会发生吗?

我想知道里面发生了什么?

有没有办法解决这个问题,但仍然保持完整的 2 AFTER INSERT触发器?

疯狂的情况。

trigger sql-server insert

2
推荐指数
1
解决办法
202
查看次数

标签 统计

insert ×1

sql-server ×1

trigger ×1