【问题标题】:Trigger with insert statement使用插入语句触发
【发布时间】:2013-12-02 00:00:28
【问题描述】:

我有包含列(id、name、address、age)的员工表。这个触发器在同一张表上有另一个插入语句。

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    [这样做的原因很明显!]

    您可以在数据库级别打开/关闭:

    ALTER DATABASE databasename 
    SET RECURSIVE_TRIGGERS ON | OFF
    

    参考:CREATE TRIGGER

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-13
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多