SQL Server ger ett enkelt sätt att e-posta resultatet av en fråga till dig själv (eller till någon annan).
För att skicka e-post med T-SQL måste du använda sp_send_dbmail
lagrad procedur i msdb databas. Denna procedur accepterar många argument, varav ett är @query
argument. Det är argumentet som bifogar resultatet av din fråga till e-postmeddelandet.
Exempel
Här är ett grundläggande exempel som använder ett minimum av 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',
@subject = 'Query results as discussed';
Som standard visas resultaten av frågan i brödtexten i e-postmeddelandet. Du kan alternativt få resultaten skickade som en bilaga.
Ta bort stoppning
Om dina resultat är formaterade med för mycket utfyllnad i kolumnerna kan du använda @query_result_no_padding = 1
för att eliminera denna utfyllnad.
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';
Lägg till frågeresultat som en bilaga
Du kan använda @attach_query_result_as_file
argument för att lägga till frågeresultaten som en bilaga. 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,
@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';
I det här exemplet har jag lagt till några fler argument.
@query_attachment_filename
argument låter dig ange ditt eget filnamn (om du inte anger detta argument kommer Database Mail att skapa ett).
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 T-SQL-exempel för att aktivera och konfigurera Database Mail. Det tar inte lång tid.