Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Invia e-mail da un trigger in SQL Server (T-SQL)

Se ti ritrovi a dover inviare un'e-mail automaticamente su determinati eventi che si verificano in SQL Server, puoi farlo tramite un trigger.

Ad esempio, potresti inviare automaticamente un'e-mail quando qualcuno elimina o aggiorna un record da una tabella, ecc.

A tale scopo, è necessario creare un trigger che includa il codice per l'invio dell'e-mail all'evento richiesto.

Esempio

Ecco un esempio di trigger che invia un'email ogni volta che qualcuno elimina un record da una tabella chiamata Cats :

CREATE TRIGGER trg_deleted_cat  
ON Cats  
AFTER DELETE   
AS  
EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'Oh no... somebody just deleted a cat!!!',  
    @subject = 'Warning: This email may distress the reader';

In questo caso voglio che l'email venga inviata ogni volta che qualcuno elimina una riga, quindi utilizzo AFTER DELETE .

Uso il sp_send_dbmail stored procedure su msdb database per inviare l'e-mail.

Affinché funzioni, è necessario che Posta elettronica database sia abilitata e configurata per l'invio di posta elettronica (Posta elettronica di database è la soluzione di SQL Server per l'invio di posta elettronica). Per istruzioni su come eseguire questa operazione, vedere Come inviare e-mail da SQL Server.