我可以问xp_sendmail
和sp_send_dbmail
proc之间的区别是什么?它们都是向指定的收件人发送电子邮件,其中可能包含查询结果集附件......
有什么区别?
答案 0 :(得分:15)
xp_sendmail
需要在服务器上安装MAPI客户端,例如Outlook。这是SQL Server 2000及之前的唯一选择。
sp_send_dbmail
是一个简单的SMTP解决方案,为SQL Server 2005 +
sp_send_dbmail
目前为止更好。
答案 1 :(得分:5)
两者之间的另一个区别是,如果事务被回滚,使用sp_send_dbmail()发送的电子邮件将被回滚(不发送)。使用xp_sendmail()发送的电子邮件不会发生这种情况。
因此,如果您希望发送电子邮件而不管交易的最终结果,您需要使用xp_sendmail()。
如果SP无法完成处理,我发送电子邮件通知用户。当然,我在该事件中回滚了交易。当我切换到sp_send_dbmail()时,正在回滚的事务(我想要收到电子邮件通知的事务)停止发送电子邮件。
答案 2 :(得分:0)
我们不控制调用代码 - 它已关闭并在事务中调用sp。我们需要SQL Server中的一项功能来直接发送或刷新邮件队列。