SQL Server biedt een gemakkelijke manier om de resultaten van een query naar uzelf (of naar iemand anders) te e-mailen.
Om e-mail met T-SQL te verzenden, moet u de sp_send_dbmail
gebruiken opgeslagen procedure in de msdb databank. Deze procedure accepteert veel argumenten, waaronder de @query
argument. Dat is het argument dat de resultaten van uw zoekopdracht aan de e-mail koppelt.
Voorbeeld
Hier is een eenvoudig voorbeeld dat een minimum aan argumenten gebruikt:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@subject = 'Query results as discussed';
Standaard worden de resultaten van de zoekopdracht weergegeven in de hoofdtekst van de e-mail. U kunt de resultaten ook als bijlage laten verzenden.
Opvulling verwijderen
Als uw resultaten zijn opgemaakt met te veel opvulling in de kolommen, kunt u @query_result_no_padding = 1
gebruiken om deze opvulling te elimineren.
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@query_result_no_padding = 1,
@subject = 'Query results as discussed';
Queryresultaten als bijlage toevoegen
U kunt de @attach_query_result_as_file
. gebruiken argument om de queryresultaten als bijlage toe te voegen. Dit accepteert een beetje waarde, met als standaard 0
(voor geen bijlage).
Om de resultaten in een bijlage te verzenden, geeft u eenvoudig een 1
. op voor dit argument.
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'Artists.csv',
@query_result_header = 1,
@query_result_width = 256,
@query_result_separator = ',',
@exclude_query_output = 1,
@append_query_error = 1,
@query_no_truncate = 0,
@query_result_no_padding = 1,
@subject = 'Query results as discussed';
In dit voorbeeld heb ik wat meer argumenten toegevoegd.
De @query_attachment_filename
argument stelt u in staat om uw eigen bestandsnaam op te geven (als u dit argument niet opgeeft, zal Database Mail er een verzinnen).
De sp_send_dbmail
procedure accepteert meer argumenten dan ik hier heb vermeld. Zie de documentatie van Microsoft voor een volledige lijst met argumenten en hun beschrijvingen.
Database-e-mail configureren
De voorbeelden op deze pagina gaan ervan uit dat u Database Mail al hebt ingeschakeld en geconfigureerd.
Zie E-mail verzenden vanuit SQL Server als u Database Mail niet hebt geconfigureerd. Dat artikel biedt T-SQL-voorbeelden voor het inschakelen en configureren van Database Mail. Het duurt niet lang.