I SQL Server kan du skicka e-postmeddelanden med sp_send_dbmail
lagrad procedur i msdb databas.
Ett av valen du har när du kör den här proceduren är om du vill inkludera resultaten av en fråga eller inte.
Ett annat val du har är om du vill skicka dessa resultat i en bilaga eller inte.
Exempel
Använd @query
för att e-posta resultaten av en fråga argument.
För att bifoga dessa resultat som en bilaga, använd @attach_query_result_as_file
argument. Det här accepterar bit värde, med standardvärdet 0
(för ingen bilaga).
För att skicka resultaten i en bilaga, ange bara en 1
för detta 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';
Det här exemplet skickar ett e-postmeddelande med resultaten bifogade som en .txt fil. Namnet genererades automatiskt av Database Mail.
Som standard är den maximala filstorleken för bilagor 1 MB per fil, men du kan ändra detta med sysmail_configure_sp
lagrad procedur.
Ange ett namn för bilagan
Du har också möjlighet att ange ditt eget namn för bilagan. Du kan göra detta 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';
Fler alternativ
Här är ett annat exempel som utökar det föregående. Här har jag inkluderat ett antal alternativ som du kan ha nytta av när du skickar frågeresultat som en e-postbilaga.
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';
Vissa av dessa är inställda på sitt standardvärde och andra är det inte. Till exempel har jag ändrat @query_result_no_padding
till 1
för att ta bort stoppning från kolumnerna. Jag har också använt @query_result_separator
för att ändra avgränsaren från standardutrymmet till ett kommatecken.
sp_send_dbmail
proceduren accepterar fler argument än jag har listat här. Se Microsofts dokumentation för en fullständig lista över argument och deras beskrivningar.
Konfigurera Databas Mail
Exemplen på den här sidan förutsätter att du redan har aktiverat och konfigurerat Databas Mail.
Om du inte har konfigurerat Databas Mail, se Hur man skickar e-post från SQL Server. Den artikeln ger exempel på hur du aktiverar och konfigurerar Database Mail med T-SQL.