0

我有一个存储过程,可以在表中插入记录,同时删除所有早于 20 分钟的记录。

我已经尝试对其进行优化,并且已经看到删除操作的成本很高。所以,我决定创建后插入触发器来执行删除操作。

看起来,它现在工作得更快了,但执行计划显示触发器中的“删除”语句 - 唯一的区别是现在删除语句具有“查询成本(相对于批处理):0%”。

我的问题是,当程序插入记录时,它会立即返回结果还是等待插入后触发器完成?

4

1 回答 1

2

触发器与调用过程是同一事务的一部分,因此整个事务只有在触发器触发后才会完成,来自 MSDN:

触发器和触发它的语句被视为单个事务,可以从触发器内回滚。如果检测到严重错误(例如,磁盘空间不足),整个事务会自动回滚。

MSDN - 了解 DML 触发器

于 2013-02-06T12:37:08.100 回答