Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изпращане на имейли с прикачени файлове в SQL Server (T-SQL)

SQL Server ни предоставя възможността да изпращаме имейли чрез своето решение за Database Mail. Това включва куп съхранени процедури, които улесняват конфигурирането и изпращането на имейли.

За да изпратите имейл, използвайте sp_send_dbmail съхранена процедура. Тази процедура приема куп незадължителни аргументи, един от които ви позволява да изпращате прикачени файлове.

Всъщност има два аргумента, които ви позволяват да изпращате прикачени файлове. Този, който използвате, ще зависи от контекста.

Те са:

  • @file_attachments – Позволява ви да посочите файл, който да прикачите към имейла.
  • @attach_query_result_as_file – Това е приложимо само ако използвате и @query да изпратите по имейл резултатите от заявка.

Примери по-долу.

Прикачване на файл

@file_attachments аргумент ви позволява да посочите файл, който да прикачите към имейла.

Ето един пример:

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

Стойността трябва да включва абсолютния път до файла.

По подразбиране максималният размер на файла е 1 MB на файл, но можете да промените това с sysmail_configure_sp съхранена процедура.

Прикачване на няколко файла

Можете да прикачите няколко файла, като разделите името на всеки файл с точка и запетая:

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

Както споменахме, ограничението за размера на файла се прилага за всеки файл. Така че, ако ограничението за размера на файла е 1 MB, всеки файл в този пример може да бъде до 1 MB (което води до общ размер от 2 MB за двата прикачени файла комбинирани).

Прикачване на резултати от заявка

Можете също да използвате Database Mail, за да изпратите по имейл резултата от заявка. Това се прави с @query аргумент. По подразбиране резултатите са изброени в тялото на имейла, но можете да ги добавите като прикачен файл, ако предпочитате.

За да ги добавите като прикачен файл, задайте @attach_query_result_as_file аргумент със стойност 1 .

Ето пример за изпращане на резултатите от заявката като прикачен файл:

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

Има доста опции, които са ви достъпни, когато изпращате резултати от заявка в имейл.

Например, можете да използвате @query_attachment_filename за да посочите името на файла (ако не е посочено, Database Mail ще го направи). Можете също да използвате @query_result_header аргумент, за да укажете дали заглавките са включени в заявката или не и можете да използвате @query_result_no_padding аргумент за премахване на всяко подпълване, което се прилага автоматично към резултатите.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ограничения на паметта в SQL Server 2016 SP1

  2. Преобразувайте текстовата стойност в SQL Server от UTF8 в ISO 8859-1

  3. SQL Server:АКТУАЛИЗИРАНЕ на таблица с помощта на ORDER BY

  4. Относно командата GO в SQL Server

  5. Ето три причини, поради които може да видите пикова активност във вашия SQL екземпляр