确定实现 sql server 触发器的一些缺点?

Fra*_*dal 0 sql-server

我计划在我所有的 DML 语句上实现触发器以进行日志管理。因此,请确定这样做是否存在一些问题或缺点。

8kb*_*8kb 5

我认为这篇 SQL Server MVP 博客文章总结得最好:

  • 在 SSMS 中很难找到触发器
  • 客户端应用程序无法看到触发器执行
  • 触发逻辑可能难以追踪
  • 代码的继承者可能没有意识到触发器已经实现
  • 众所周知,触发器会抑制性能

Brent Ozar还指出触发器是他在“无法扩展的十大开发人员错误”第 10 名犯规

但本着平衡的精神,这篇博文列出了一些好处

  • 能够执行更复杂的业务逻辑
  • 可以用作替代方法来触发计划任务
  • 用于审计表中的任何更改,无论它是如何发生的(即存储过程、客户端应用程序、即席查询)