sql >> Databasteknik >  >> RDS >> Sqlserver

Skicka e-post från en utlösare i SQL Server (T-SQL)

Om du märker att du behöver skicka ett e-postmeddelande automatiskt efter vissa händelser som inträffar i SQL Server, kan du göra detta via en trigger.

Du kan till exempel automatiskt skicka ett e-postmeddelande när någon tar bort eller uppdaterar en post från en tabell, etc.

För att göra detta måste du skapa en utlösare som inkluderar kod för att skicka e-postmeddelandet vid den nödvändiga händelsen.

Exempel

Här är ett exempel på en utlösare som skickar ett e-postmeddelande när någon tar bort en post från en tabell som heter 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';

I det här fallet vill jag att e-postmeddelandet ska skickas när någon raderar en rad, så jag använder AFTER DELETE .

Jag använder sp_send_dbmail lagrad procedur på msdb databas för att skicka e-postmeddelandet.

För att detta ska fungera måste du ha Database Mail aktiverat och konfigurerat för att skicka e-post (Database Mail är SQL Servers lösning för att skicka e-post). Se Hur man skickar e-post från SQL Server för instruktioner om hur man gör detta.


  1. Ändra en befintlig kolumn till en beräknad kolumn i SQL Server (T-SQL-exempel)

  2. Simulerad OLAP

  3. Databasbelastningsbalansering:distribuerade vs centraliserade inställningar

  4. SQL Server dynamisk PIVOT-fråga?