更新触发器插入新记录但插入触发器不会触发

时间:2013-06-14 18:23:23

标签: sql-server-2008 sql-server-2005 triggers

SQL Server 2005或2008:
我有一个UPDATE触发器,只有在更改某个状态字段时才会将新记录插入到同一个表中。

新记录确实已正确创建,因此UPDATE触发器可以正常工作。但是,以这种方式创建记录时,INSERT触发器不会触发。

当我从触发器中拉出insert语句并单独运行时,INSERT触发器会触发并正确执行,就像从表单创建记录时一样。

因此,两个触发器都按设计工作。我为测试设置了递归,但是没有用。所以我想简单的问题是......可以这样做吗?

1 个答案:

答案 0 :(得分:0)

您需要为服务器启用嵌套触发器。方法如下:

EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE ;
GO
EXEC sp_configure 'nested triggers', 1 ;
GO
RECONFIGURE;
GO

请注意,这会影响所有数据库,并且会产生意想不到的后果(对于不打算像这样级联的触发器)。