我有一个场景,我会在每次插入表格后检查条件后发送邮件。
我的第二个问题是采取什么方法
我应该直接从数据库发送邮件吗? (注意:我的DBserver和Mail服务器位于不同的网络中,可能会创建防火墙规则例外)
我应该有一个CLR-sproc。从数据库中,我调用CLR-sproc和CLR-sproc调用服务,然后从那里发送邮件。
有更好的方法吗?
答案 0 :(得分:1)
SQL Server DBMail和CLR proc都将使用SMTP发送电子邮件。那么,为什么要增加复杂性?
此外,通过DBMail或CLR发送电子邮件需要在INSERT上进行处理。请注意,DBMail使用队列,因此比运行CLR过程影响更小。
触发器是一种很好的方法。但是,考虑使用存储过程使用在事务外部发送的电子邮件来执行ISNERT(由于INSERT,您将有一个隐式的)。在触发器中发送意味着它是INSERT的隐式事务的 part 。
从安全角度来看,SQLMachine仍然需要访问SMTPMachine,无论是使用DBMail还是CLR Proc的服务调用。
答案 1 :(得分:0)
1)是的,触发器是在每次插入后执行操作的正确方法
2)SQL服务器有一个名为Database Mail的功能,看起来它会做你想要的(尽管我自己从未使用过它)