Triggers 触发器在SQL Server中的内部工作方式

Triggers 触发器在SQL Server中的内部工作方式,triggers,sql-server-2008-r2,Triggers,Sql Server 2008 R2,如果我错了,请纠正我 我所知道的触发器是由事件(插入、更新、删除)触发的。所以我们可以运行一个存储过程等等。。扣动扳机 这将为应用程序提供良好的响应性,因为用户交互的查询非常小,而且这些“其他”较长时间的事务由服务器作为单独的任务在内部处理 但我不知道服务器内部如何处理触发器。我想知道的是,在下面给出的场景中会发生什么 触发后插入。而take trigger则执行更长的存储过程。然后在触发器的中间可以有另一个插入。我想知道的是第二个触发器会发生什么。如果可能的话,我可以让第二个触发器忽略自身。m

如果我错了,请纠正我

我所知道的触发器是由事件(插入、更新、删除)触发的。所以我们可以运行一个存储过程等等。。扣动扳机

这将为应用程序提供良好的响应性,因为用户交互的查询非常小,而且这些“其他”较长时间的事务由服务器作为单独的任务在内部处理

但我不知道服务器内部如何处理触发器。我想知道的是,在下面给出的场景中会发生什么


触发后插入。而take trigger则执行更长的存储过程。然后在触发器的中间可以有另一个插入。我想知道的是第二个触发器会发生什么。如果可能的话,我可以让第二个触发器忽略自身。

marc\s给出了正确的答案。为了完整起见,我将复制它

触发器是同步的

如果您想拥有异步功能,请使用SQL代理实现。


触发器由事件触发,然后立即执行。由于您无法控制触发它们的时间和频率,因此您应该将这些触发器中的处理保持在绝对最小值—我总是尝试最多—在另一个表(“审计”表)中创建一个条目,或者可能在“命令”表中添加一个“标记”行。但是,对这些信息的实际处理——运行存储过程等——应该由外部作业来完成——不要在触发器中进行大量处理!这将可靠地终止所有性能\响应。

触发器由事件触发,然后立即执行。由于您无法控制触发它们的时间和频率,因此您应该将这些触发器中的处理保持在绝对最小值—我总是尝试最多—在另一个表(“审计”表)中创建一个条目,或者可能在“命令”表中添加一个“标记”行。但是,对这些信息的实际处理——运行存储过程等——应该由外部作业来完成——不要在触发器中进行大量处理!这将可靠地扼杀您的所有性能。。。。