触发器如何在SQL Server内部工作

时间:2012-08-30 06:39:41

标签: triggers sql-server-2008-r2

如果我错了,请纠正我。

我对触发器的了解是它们是由事件(插入,更新,删除)触发的。所以我们可以在触发器中运行存储过程等。

这将为应用程序提供良好的响应能力,因为用户与之交互的查询非常小,并且服务器内部将这些“其他”更长时间的内容作为单独的任务处理。

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

触发后进行插入。并且触发器正在执行更长的存储过程。然后在触发器的中间可以有另一个插入。我想知道的是第二次触发会发生什么。如果可能的话,我可以让第二个触发器忽略它自己。

1 个答案:

答案 0 :(得分:2)

marc_s给出了正确的答案。为了完整起见,我会复制它。

TRIGGERS同步

如果您希望使用异步功能,请转到SQL代理程序。

触发器由事件触发 - 然后它们被执行 - 现在。由于你无法控制它们被触发的时间和频率,你应该将这些触发器中的处理保持在绝对最小值 - 我总是试图 - 最多 - 进入另一个表(“审计”表)或者可能放入“marker”行进入“命令”表。但是该信息的实际处理 - 运行存储过程等 - 应留给外部工作 - 不要在触发器中进行大量处理!这将可靠地杀死你的所有表现\响应能力。