2009-08-01 29 views
6

Tôi có thể hỏi sự khác nhau giữa xp_sendmailsp_send_dbmail proc là gì? Cả hai đều gửi tin nhắn e-mail, có thể bao gồm tệp đính kèm tập hợp kết quả truy vấn, đến người nhận được chỉ định .....sự khác biệt xp_sendmail và sp_send_dbmail proc

Sự khác biệt là gì?

Trả lời

15

xp_sendmail yêu cầu khách hàng MAPI được cài đặt, chẳng hạn như Outlook, trên máy chủ. Đây là tùy chọn duy nhất cho SQL Server 2000 và trước đó.

sp_send_dbmail là một giải pháp đơn giản SMTP, bổ sung cho SQL Server 2005+

sp_send_dbmail là của xa tốt hơn.

+0

Cảm ơn .... Tôi hiểu !! –

3

Một khác biệt khác giữa hai thông điệp email được gửi bằng sp_send_dbmail() sẽ được khôi phục (không gửi) nếu giao dịch được khôi phục. Điều này không xảy ra với email được gửi bằng cách sử dụng xp_sendmail().

Vì vậy, nếu bạn muốn gửi thư email bất kể kết quả cuối cùng của giao dịch, bạn sẽ cần sử dụng xp_sendmail().

Tôi đã gửi email để thông báo cho người dùng nếu SP không thể hoàn thành quá trình xử lý. Tất nhiên, tôi đã quay trở lại giao dịch trong sự kiện đó. Khi tôi chuyển sang sp_send_dbmail() các giao dịch đã được khôi phục (những giao dịch mà tôi muốn nhận thông báo qua email) đã ngừng gửi email.

+0

Ngay cả khi các tin nhắn phải được gửi bất kể giao dịch rollback, nó có thể sử dụng 'sp_send_dbmail'. Lưu trữ tất cả thông tin trong một biến bảng và gửi sau khi khôi phục. – ajeh

0

chúng tôi không kiểm soát mã gọi điện - mã đã đóng và gọi lệnh sp trong giao dịch. Chúng ta cần một tính năng trong SQL Server để gửi trực tiếp hoặc xóa bỏ hàng đợi thư.

+0

Câu trả lời của bạn cho thấy ấn tượng không liên quan đến câu hỏi. – Yunnosch

+0

liên quan đến một trong những khác biệt, xếp hàng trong sp_send_dbmail và sự cố khi gửi email từ một giao dịch mà sau này được khôi phục. Trong trường hợp của chúng tôi, chúng tôi không thực hiện việc khôi phục, vì vậy không thể lưu trữ bất kỳ thứ gì. Nó liên quan đến ajeh 21 tháng 3 lúc 21:21 bình luận. –

Các vấn đề liên quan