2009-08-01 11 views
6

Posso chiedere qual è la differenza tra xp_sendmail e sp_send_dbmail proc? Entrambi inviano un messaggio di posta elettronica, che può includere un allegato del set di risultati della query, ai destinatari specificati .....differenza xp_sendmail e sp_send_dbmail proc

Qual è la differenza?

risposta

15

xp_sendmail richiede un client MAPI installato, ad esempio Outlook, sul server. Questa è l'unica opzione per SQL Server 2000 e precedenti.

sp_send_dbmail è una soluzione semplice SMTP, aggiunto per SQL Server 2005 +

sp_send_dbmail è di gran lunga migliore.

+0

Grazie .... ho capito !! –

3

Un'altra differenza tra i due è che il messaggio di posta elettronica inviato utilizzando sp_send_dbmail() verrà eseguito il rollback (non inviato) se si esegue il rollback della transazione. Questo non succede con l'email inviata usando xp_sendmail().

Quindi, se si desidera inviare il messaggio di posta elettronica indipendentemente dal risultato finale della transazione, è necessario utilizzare xp_sendmail().

Stavo inviando email per notificare agli utenti se un SP non era in grado di completare l'elaborazione. Ovviamente, stavo ripristinando la transazione in quell'evento. Quando sono passato a sp_send_dbmail() le transazioni che si stavano ritirando (quelle che volevo ricevere una notifica via email) hanno smesso di inviare email.

+0

Anche se i messaggi devono essere inviati indipendentemente dal rollback della transazione, è possibile utilizzare 'sp_send_dbmail'. Archivia tutte le informazioni in una variabile di tabella e invia dopo il rollback. – ajeh

0

non controlliamo il codice chiamante: è chiuso e chiama lo sp in una transazione. Abbiamo bisogno di una funzionalità in SQL Server per inviare direttamente o svuotare la coda di posta.

+0

La tua risposta dà l'impressione di non essere correlata alla domanda. – Yunnosch

+0

è correlato a una delle differenze, al comando in sp_send_dbmail e al problema relativo all'invio di e-mail da una transazione che viene successivamente ripristinata. Nel nostro caso non eseguiamo il rollback, quindi non possiamo memorizzare nulla. È legato al commento del 21 marzo 21 giugno. –

Problemi correlati