【问题标题】:Can DML triggers be useful in alerting?DML 触发器可以用于警报吗?
【发布时间】:2018-08-06 22:08:24
【问题描述】:

我经常想到触发器如何有用,但没有创建任何触发器。

我的业务需要在选择性患者到期时触发提醒电子邮件。这种情况很少发生,因此让 SSRS 或 SSIS 函数每小时检查一次可能每年只发生一次的事情似乎是资源密集型的。

所以,我开始考虑使用 AFTER 类型的 DML 触发器。当 Discharge Disposition = 'Expired' 并且 Admit Source = 'Elective' 时,向指定用户发送警报电子邮件或其他通知。

这是对触发器的一种很好的使用,还是我给数据库增加了负担,而在其他地方可以更好地提供服务?有没有人对业务用例的 DML 触发器感到成功和满意?

【问题讨论】:

    标签: sql sql-server triggers


    【解决方案1】:

    是的,生成事件是触发器的合理用途。请注意,您实际上不应该在触发器中执行任何操作,而不仅仅是将行插入到保存通知的表中,或者可能是 Service Broker 队列。然后后台进程实际上会对该事件采取行动。

    对于电子邮件Database Mail 为您执行此操作,您只需调用sp_send_dbmail 以生成外发 SMTP 电子邮件并将其排队发送。或者只是在您创建的表中写入一行,让后台作业或应用程序读取它并发送邮件,或触发您需要的任何下游进程。

    【讨论】:

      猜你喜欢
      • 2010-12-23
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多