差异xp_sendmail和sp_send_dbmail proc

时间:2009-08-01 13:14:28

标签: sql-server sqlmail

我可以问xp_sendmailsp_send_dbmail proc之间的区别是什么?它们都是向指定的收件人发送电子邮件,其中可能包含查询结果集附件......

有什么区别?

3 个答案:

答案 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中的一项功能来直接发送或刷新邮件队列。