sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man e-postar resultaten av en fråga i SQL Server (T-SQL)

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.


  1. SQL Server v.Next:STRING_AGG() prestanda

  2. Vilken MySQL-datatyp ska användas för latitud/longitud med 8 decimaler?

  3. Kör total-order efter datum i SQLite

  4. Introduktion till OPENJSON med exempel (SQL-server)