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

Sådan e-mailes forespørgselsresultater som en vedhæftet fil i SQL Server (T-SQL)

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.


  1. opdatere flere rækker ved hjælp af limit i mysql?

  2. Tilbyder SQL Server noget som MySQL's PÅ DUBLIKAT NØGLEOPDATERING

  3. Sådan gemmer du Emoji-karakterer i MySQL-databasen

  4. SQL Union – En omfattende vejledning om UNION-operatøren