In SQL Server kunt u e-mails verzenden met de sp_send_dbmail
opgeslagen procedure in de msdb databank.
Een van de keuzes die u heeft bij het uitvoeren van deze procedure is of u de resultaten van een zoekopdracht wel of niet wilt opnemen.
Een andere keuze die u heeft, is of u deze resultaten in een bijlage wilt verzenden.
Voorbeeld
Om de resultaten van een zoekopdracht te e-mailen, gebruikt u de @query
argument.
Om die resultaten als bijlage bij te voegen, gebruikt u de @attach_query_result_as_file
argument. 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,
@subject = 'Query results as discussed';
Dit voorbeeld stuurt een e-mail met de resultaten als bijlage als een .txt het dossier. De naam is automatisch gegenereerd door Database Mail.
Standaard is de maximale bestandsgrootte voor bijlagen 1 MB per bestand, maar u kunt dit wijzigen met de sysmail_configure_sp
opgeslagen procedure.
Geef een naam op voor de bijlage
U heeft ook de mogelijkheid om uw eigen naam voor de bijlage op te geven. U kunt dit doen met de @query_attachment_filename
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',
@subject = 'Query results as discussed';
Meer opties
Hier is nog een voorbeeld dat uitbreidt op het vorige. Hier heb ik een aantal opties opgenomen die u misschien handig vindt bij het verzenden van queryresultaten als e-mailbijlage.
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';
Sommige hiervan zijn ingesteld op hun standaardwaarde en andere niet. Ik heb bijvoorbeeld @query_result_no_padding
. gewijzigd naar 1
om opvulling uit de kolommen te verwijderen. Ik heb ook @query_result_separator
. gebruikt om het scheidingsteken van de standaardruimte te wijzigen in een komma.
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 geeft voorbeelden voor het inschakelen en configureren van Database Mail met T-SQL.