I SQL Server kan du sende e-mails ved hjælp af sp_send_dbmail
gemt procedure i msdb database.
Et af de valg, du har, når du udfører denne procedure, er, om du vil inkludere resultaterne af en forespørgsel eller ej.
Et andet valg, du har, er, om du vil sende disse resultater i en vedhæftet fil.
Eksempel
For at e-maile resultaterne af en forespørgsel skal du bruge @query
argument.
For at vedhæfte disse resultater som en vedhæftet fil, brug @attach_query_result_as_file
argument. Dette accepterer en bit værdi, hvor standarden er 0
(for ingen vedhæftet fil).
For at sende resultaterne i en vedhæftet fil, skal du blot angive en 1
for dette 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';
Dette eksempel sender en e-mail med resultaterne vedhæftet som en .txt fil. Navnet blev automatisk genereret af Database Mail.
Som standard er den maksimale filstørrelse for vedhæftede filer 1 MB pr. fil, men du kan ændre dette med sysmail_configure_sp
gemt procedure.
Angiv et navn til den vedhæftede fil
Du har også mulighed for at oplyse dit eget navn til bilaget. Du kan gøre dette med @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';
Flere muligheder
Her er et andet eksempel, der udvider det forrige. Her har jeg inkluderet en række muligheder, som du kan finde nyttige, når du sender forespørgselsresultater som en vedhæftet fil i e-mail.
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';
Nogle af disse er indstillet til deres standardværdi, og nogle er ikke. For eksempel har jeg ændret @query_result_no_padding
til 1
for at fjerne polstring fra søjlerne. Jeg har også brugt @query_result_separator
for at ændre separatoren fra standardmellemrummet til et komma.
sp_send_dbmail
procedure accepterer flere argumenter, end jeg har anført her. Se Microsofts dokumentation for en komplet liste over argumenter og deres beskrivelser.
Konfiguration af databasemail
Eksemplerne på denne side antager, at du allerede har aktiveret og konfigureret Database Mail.
Hvis du ikke har konfigureret Database Mail, se Sådan sender du e-mail fra SQL Server. Denne artikel giver eksempler på aktivering og konfiguration af Database Mail med T-SQL.