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

Send e-mails med vedhæftede filer i SQL Server (T-SQL)

SQL Server giver os mulighed for at sende e-mails via sin Database Mail-løsning. Dette inkluderer en masse lagrede procedurer, der letter konfigurationen og afsendelsen af ​​e-mails.

For at sende en e-mail skal du bruge sp_send_dbmail gemt procedure. Denne procedure accepterer en masse valgfri argumenter, hvoraf et tillader dig at sende vedhæftede filer.

Faktisk er der to argumenter, der gør det muligt for dig at sende vedhæftede filer. Den, du bruger, afhænger af konteksten.

De er:

  • @file_attachments – Giver dig mulighed for at angive en fil, der skal vedhæftes til e-mailen.
  • @attach_query_result_as_file – Dette gælder kun, hvis du også bruger @query for at e-maile resultaterne af en forespørgsel.

Eksempler nedenfor.

Vedhæft en fil

@file_attachments argument giver dig mulighed for at angive en fil, der skal vedhæftes til e-mailen.

Her er et eksempel:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'The attached file contains all required data.',
    @file_attachments = '/var/opt/mssql/bak/Nature.bak',
    @subject = 'File attached as discussed';

Værdien skal inkludere den absolutte sti til filen.

Som standard er den maksimale filstørrelse 1 MB pr. fil, men du kan ændre dette med sysmail_configure_sp gemt procedure.

Vedhæft flere filer

Du kan vedhæfte flere filer ved at adskille hvert filnavn med et semikolon:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'The attached files contain all required data.',
    @file_attachments = '/var/opt/mssql/bak/Nature.bak;/var/opt/mssql/bak/World.bak',
    @subject = 'Files attached as discussed';

Filstørrelsesgrænsen gælder som nævnt for hver fil. Så hvis filstørrelsesgrænsen er 1 MB, kan hver fil i dette eksempel være op til 1 MB (hvilket resulterer i en samlet størrelse på 2 MB for begge vedhæftede filer kombineret).

Vedhæft resultater af en forespørgsel

Du kan også bruge Database Mail til at e-maile resultatet af en forespørgsel. Dette gøres med @query argument. Som standard vises resultaterne i e-mailens brødtekst, men du kan tilføje dem som en vedhæftet fil, hvis du foretrækker det.

For at tilføje dem som en vedhæftet fil, skal du indstille @attach_query_result_as_file argument med værdien 1 .

Her er et eksempel på afsendelse af forespørgselsresultater som en vedhæftet fil:

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

Der er en del muligheder tilgængelige for dig, når du sender forespørgselsresultater i en e-mail.

For eksempel kan du bruge @query_attachment_filename for at angive filnavnet (hvis det ikke er angivet, vil Database Mail lave et). Du kan også bruge @query_result_header argument for at angive, om overskrifterne er inkluderet i forespørgslen eller ej, og du kan bruge @query_result_no_padding argument for at fjerne enhver udfyldning, der automatisk anvendes på resultaterne.


  1. Sådan fungerer SCHEMA_ID() i SQL Server

  2. Hvordan oprettes skema i Oracle ved hjælp af SQL Developer?

  3. VIS TABELLER i MySQL

  4. Mærkelig SQLAlchemy-fejlmeddelelse:TypeError:'dict'-objekt understøtter ikke indeksering