Tento díl o mailování ze SQL Serveru bude asi poslední, už mi docházejí nápady 🙂 Poslat email SQL scriptem můžete přes systémovou proceduru “sp_send_dbmail”. Před tím je ale potřeba něco ponastavovat.
Jak poslat email přes SQL Script – sp_send_dbmail
Krok 1 – Nastavení database mail
Především musíte mít nastaven database email v SQL Server profil můžete podle článku z prvního dílu
Krok 2 – Povolit emailování prostřednictvím database mailu
Dále je potřeba povolit tuto formu emailování puštěním skriptu
sp_CONFIGURE 'show advanced', 1
GO
RECONFIGURE
GO
sp_CONFIGURE 'Database Mail XPs', 1
GO
RECONFIGURE
GO
Odeslání emailu z databáze – sp_send_dbmail
Email se dá poslat přes proceduru sp_send_dbmail, která leží v systémové databázi msdb. V ukázce nasimuluju puštění skriptu.
- Pokud script doběhne úspěsně, tak si nechám poslat email ve znění “Skript XYZ doběhl úspěšně”
- V opačném případě bude znění “Skript XYZ neproběhl úspěšně !!!” a raisnu Error přes RAISERROR
BEGIN TRY
SELECT 1/0
EXEC msdb.dbo.sp_send_dbmail @profile_name='biportaldbmail',
@recipients='biportaldbmail@gmail.com',
@subject='Skript XYZ úspěšně doběhl',
@body='Skript XYZ úspěšně doběhl'
END TRY
BEGIN CATCH
EXEC msdb.dbo.sp_send_dbmail @profile_name='biportaldbmail',
@recipients='biportaldbmail@gmail.com',
@subject='Skript XYZ neproběhl úspěšně !!!',
@body='Skript XYZ neproběhl úspěšně !!!'
RAISERROR ('Skript XYZ neproběhl úspěšně !!!', 16,1)
END CATCH
Po spuštění skriptu zkontroluju email. Přišla notifikace o neúspěšném průběhu scriptu, protože 0 nejde dělit.