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

Как да изпратите по имейл резултатите от заявката като прикачен файл в SQL Server (T-SQL)

В SQL Server можете да изпращате имейли с помощта на sp_send_dbmail съхранена процедура в msdb база данни.

Един от изборите, които имате, когато изпълнявате тази процедура, е дали да включите или не резултатите от заявка.

Друг избор, който имате, е дали да изпратите тези резултати в прикачен файл.

Пример

За да изпратите имейл с резултатите от заявка, използвайте @query аргумент.

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

За да изпратите резултатите в прикачен файл, просто предоставете 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';

Този пример изпраща имейл с прикачени резултати като .txt файл. Името е генерирано автоматично от Database Mail.

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

Посочете име за прикачения файл

Освен това имате възможност да предоставите собствено име за прикачения файл. Можете да направите това с @query_attachment_filename аргумент.

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

Още опции

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

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

Някои от тях са зададени на тяхната стойност по подразбиране, а някои не. Например, промених @query_result_no_padding до 1 за да премахнете подпълването от колоните. Използвах също @query_result_separator за да промените разделителя от интервала по подразбиране на запетая.

sp_send_dbmail процедурата приема повече аргументи, отколкото съм изброил тук. Вижте документацията на Microsoft за пълен списък с аргументи и техните описания.

Конфигуриране на поща от база данни

Примерите на тази страница предполагат, че вече сте активирали и конфигурирали Database Mail.

Ако не сте конфигурирали Database Mail, вижте Как да изпратите имейл от SQL Server. Тази статия предоставя примери за активиране и конфигуриране на Database Mail с T-SQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Актуализирайте записите в таблицата от CTE

  2. Моментни снимки на базата данни на SQL Server -4

  3. Каква е целта на репликацията на данни?

  4. Разлика между потребител и вход в SQL Server

  5. Преобразуване на SQL2008 RDL файл в SQL2005