Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wysłać e-mailem wyniki zapytania w SQL Server (T-SQL)

SQL Server zapewnia łatwy sposób wysyłania wyników zapytania pocztą elektroniczną do siebie (lub innej osoby).

Aby wysłać e-mail za pomocą T-SQL, musisz użyć sp_send_dbmail procedura składowana w msdb Baza danych. Ta procedura akceptuje wiele argumentów, z których jednym jest @query argument. To jest argument, który dołącza wyniki zapytania do wiadomości e-mail.

Przykład

Oto podstawowy przykład z minimalną liczbą argumentów:

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

Domyślnie wyniki zapytania są wyświetlane w treści wiadomości e-mail. Alternatywnie możesz wysłać wyniki jako załącznik.

Usuń wypełnienie

Jeśli Twoje wyniki są sformatowane ze zbyt dużym dopełnieniem w kolumnach, możesz użyć @query_result_no_padding = 1 aby wyeliminować to dopełnienie.

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

Dodaj wyniki zapytania jako załącznik

Możesz użyć @attach_query_result_as_file argument, aby dodać wyniki zapytania jako załącznik. To akceptuje trochę wartość, domyślnie 0 (bez załącznika).

Aby wysłać wyniki w załączniku, po prostu podaj 1 dla tego argumentu.

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

W tym przykładzie dodałem kilka dodatkowych argumentów.

@query_attachment_filename argument pozwala określić własną nazwę pliku (jeśli nie podasz tego argumentu, poczta bazy danych utworzy ją).

sp_send_dbmail procedura akceptuje więcej argumentów niż tutaj wymieniłem. Zobacz dokumentację Microsoft, aby uzyskać pełną listę argumentów i ich opisów.

Konfigurowanie poczty bazy danych

W przykładach na tej stronie założono, że już włączono i skonfigurowano pocztę bazy danych.

Jeśli nie masz skonfigurowanej poczty bazy danych, zobacz Jak wysyłać wiadomości e-mail z programu SQL Server. Ten artykuł zawiera przykłady T-SQL dotyczące włączania i konfigurowania poczty bazy danych. To nie trwa długo.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łatwe przywracanie bazy danych SQL — przewodnik krok po kroku

  2. Zapytania hierarchiczne w SQL Server 2005

  3. Formatuj kolumny daty i czasu trwania sysjobhistory w SQL Server

  4. SqlConnection.Close() wewnątrz przy użyciu instrukcji

  5. Jak połączyć się z SQL Server za pomocą sqlalchemy przy użyciu uwierzytelniania systemu Windows?