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.