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 = 'example@sqldat.com',
@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 = 'example@sqldat.com',
@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 = 'example@sqldat.com',
@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.