使用insert语句触发

时间:2013-12-02 00:00:28

标签: sql sql-server sql-server-2008

我的员工表包含列(ID,名称,地址,年龄)。此触发器在同一个表上有另一个insert语句。

create trigger emp_trigger 
on employee 
for insert 
as 
insert into employee (name, [address], age) 
values ('AutoCreated', 'inserted via trigger', 40)

现在当我在employee表中插入一些东西时,触发器会执行,这会在表中插入另一个条目。但是触发器不会进一步执行。我期待它会创建无限循环,因为触发器内的插入操作会递归调用触发器。

我想知道为什么插入内部触发器会执行触发器。

1 个答案:

答案 0 :(得分:4)

除非设置了RECURSIVE_TRIGGERS数据库选项,否则触发器不会递归调用自身。

[这是出于显而易见的原因!]

您可以使用以下命令在数据库级别打开/关闭

ALTER DATABASE databasename 
SET RECURSIVE_TRIGGERS ON | OFF

参考:CREATE TRIGGER