sql - 使用插入语句触发

标签 sql sql-server sql-server-2008

我有包含列(id、姓名、地址、年龄)的员工表。该触发器在同一个表上有另一个插入语句。

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

现在,当我在员工表中插入某些内容时,触发器就会执行,从而在表中插入另一个条目。但是触发器不会进一步执行。我期望它会创建无限循环,因为触发器内的插入操作会递归调用触发器。

我想知道为什么 insert inside 触发器确实会执行触发器。

最佳答案

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

[这样做的原因显而易见!]

您可以通过以下方式在数据库级别打开/关闭:

ALTER DATABASE databasename 
SET RECURSIVE_TRIGGERS ON | OFF

引用号:CREATE TRIGGER

关于sql - 使用插入语句触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20318816/

相关文章:

sql - Rails - 获取不同的事件,按关联事件实例的开始日期排序

sql - 检查选择查询中的零行

c# - 分层 JSON 数据到分层表

sql - 通过临时表连接 SQL Server

SQL(服务器)更新性能

sql-server - 如何在 SQL Server 2008 R2 中使用 CONCAT 函数?

sql-server - 从 SQL Server 2008 发送批量电子邮件

java - 查询 Java 数据结构

sql - 删除重复行 SQL Server?

sql-server - ZIP 文件在 SSIS 中不起作用(服务器级别问题?)