30Jun

Skickar automatiserade meddelanden om jobbanmälan i SQL Server med SMTP

När du har automatiska säkerhetskopieringsjobb som körs på din databasserver, glömmer du ibland att de ens körs. Då glömmer du att kontrollera om de körs med framgång och inser inte förrän din databas kraschar och du kan inte återställa den eftersom du inte har någon aktuell säkerhetskopiering.

Det är där e-postmeddelanden kommer in, så du kan se jobbstatus varje morgon när du nipper till kaffet och låtsas som om du arbetar.

SQL Server ger en inbyggd metod för att skicka e-postmeddelanden, men det kräver tyvärr att du har Outlook och en profil installerad på servern, vilket inte nödvändigtvis är det perfekta sättet att skicka ett mail. Tack och lov finns det en annan metod, som innebär att du installerar en lagrad procedur på din server som låter dig skicka e-post via SMTP.

Ladda ner sp_SQLNotify Stored Procedure här.

Du vill redigera en rad i den lagrade proceduren för att ställa in din SMTP-serverns IP-adress:

EXEC @hr = sp_OASetProperty @iMsg, "Configuration.fields( " http: //schemas.microsoft.com/cdo/configuration/ smtpserver "). Värde", "10. 1.1.10 '

Installera den lagrade proceduren i huvuddatabasen, så att den enkelt kan användas från var som helst.

Öppna listan SQL Server Agent \ Jobs och välj egenskaperna för jobbet du försöker skapa en anmälan för:

Klicka på fliken Steg och du ska se en skärm som ser ut så här:

Klicka på knappen Nyatt skapa ett nytt jobb steg. Vi använder detta steg för att skicka e-postmeddelandet till framgång.

Stegnamn: E-postmeddelande Framgång

Skriv in denna SQL i kommandofönstret enligt nedan. Du kommer att vilja anpassa e-postadresserna och meddelandemedlet för att matcha din miljö:

exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Backup Job Success', 'Backup Job completedframgångsrikt "

Klicka på OK och klicka sedan på Ny knappen igen för att skapa ett annat steg. Detta kommer att vara felmeddelandet.

Stegnamn: E-postmeddelande misslyckad

SQL:

exec master.dbo.sp_SQLNotify '[email protected]', '[email protected]', 'Säkerhetskopieringsjobb,' Säkerhetskopieringsjobb misslyckades '

Nu är tanken attgör objekten till ett specifikt arbetsflöde. Klicka först på Redigera på steg 1 och ställ in egenskaperna som visas här:

Vad vi säger är att framgångsrikt gå till framgångsteget och om du misslyckas, gå till misslyckningssteget. Ganska enkla saker.

Redigera nu det andra steget, den labled "Email Notification Success" och ställ in egenskaperna som här:

Vi säger att om anmälningsjobbet är framgångsrikt, avsluta bara jobbet utan att springa steg 3. Om vi ​​inte gör 't specificera detta, då kommer vi sluta få två e-postmeddelanden, en med framgång och en med fel.

Redigera nu det tredje steget, den som lades "E-postnotifieringsfel" och ställ in egenskaperna som här:

Nu ska dina arbetssteg se ut så här:

Du borde nu ha e-postmeddelanden i inkorgen för antingen framgång eller misslyckande.

Obs! Den lagrade proceduren som användes i den här artikeln hittades här, men det kanske inte är den ursprungliga källan.

Ladda ner sp_SQLNotify Stored Procedure här.