sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan e-mailes resultaterne af en forespørgsel i SQL Server (T-SQL)

SQL Server giver en nem måde at e-maile resultaterne af en forespørgsel til dig selv (eller til en anden).

For at sende e-mail med T-SQL skal du bruge sp_send_dbmail gemt procedure i msdb database. Denne procedure accepterer mange argumenter, hvoraf et er @query argument. Det er argumentet, der vedhæfter resultaterne af din forespørgsel til e-mailen.

Eksempel

Her er et grundlæggende eksempel, der bruger et minimum af argumenter:

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 vises resultaterne af forespørgslen i e-mailens brødtekst. Du kan alternativt få resultaterne sendt som en vedhæftet fil.

Fjern polstring

Hvis dine resultater er formateret med for meget udfyldning i kolonnerne, kan du bruge @query_result_no_padding = 1 for at fjerne denne polstring.

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';

Tilføj forespørgselsresultater som en vedhæftet fil

Du kan bruge @attach_query_result_as_file argument for at tilføje forespørgselsresultaterne som en vedhæftet fil. 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,
    @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 dette eksempel har jeg tilføjet nogle flere argumenter.

@query_attachment_filename argument giver dig mulighed for at angive dit eget filnavn (hvis du ikke angiver dette argument, vil Database Mail lave et).

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 T-SQL-eksempler til aktivering og konfiguration af Database Mail. Det tager ikke lang tid.


  1. Hvordan gemmer man flere muligheder i en enkelt tabel?

  2. Forespørgsel med outer joins opfører sig anderledes i Oracle 12c

  3. PostgreSQL Opret database

  4. Bedste tilgang til at fjerne tid en del af datetime i SQL Server