如何在仍有触发器运行时忽略触发器

时间:2012-08-28 12:18:50

标签: triggers sql-server-2008-r2

问题:

我想在插入表时编写触发器,我必须检查并向特定用户发送电子邮件。为此,我想使用一个触发器,将一些值插入另一个 QUEUE表。然后, QUEUE表中的触发器将获得前x个电子邮件数量并发送并循环,直到完成所有记录。因此,一旦调用触发器,当触发器处于工作状态时,可以插入 QUEUE表。因此触发器将等待并且每次插入到QUEUE表并且在当前运行的触发器完成之后。

问题:

我的方法是否正确。如果有更好的方法可以帮助我。如果一次又一次地触发触发器,这是一个设计问题吗?有没有办法在有一个正在运行的触发器时忽略触发器。

1 个答案:

答案 0 :(得分:1)

我在这里建议的是,

1.在主表上创建一个触发器,因为当新记录插入主表时,将记录插入另一个表(QUEUE表)。

2.现在创建一个sproc,它将从队列表中选择前X行并发送电子邮件。

3.现在创建一个sql作业,它将定期执行上面创建的sproc。

4.在sproc中你可以像发送电子邮件一样处理,你可以从QUEUE表中删除这些记录或者用它们做些什么。