SQL Server предоставя лесен начин да изпратите по имейл резултатите от заявка до вас (или до някой друг).
За да изпратите имейл с T-SQL, трябва да използвате sp_send_dbmail
съхранена процедура в msdb база данни. Тази процедура приема много аргументи, един от които е @query
аргумент. Това е аргументът, който прикачва резултатите от вашата заявка към имейла.
Пример
Ето един основен пример, който използва минимум аргументи:
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';
По подразбиране резултатите от заявката са изброени в тялото на имейла. Като алтернатива можете да изпратите резултатите като прикачен файл.
Премахване на подплата
Ако резултатите ви са форматирани с твърде много подпълване в колоните, можете да използвате @query_result_no_padding = 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',
@query_result_no_padding = 1,
@subject = 'Query results as discussed';
Добавяне на резултати от заявка като прикачен файл
Можете да използвате @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,
@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_attachment_filename
Аргументът ви позволява да посочите собствено име на файл (ако не предоставите този аргумент, Database Mail ще го направи).
sp_send_dbmail
процедурата приема повече аргументи, отколкото съм изброил тук. Вижте документацията на Microsoft за пълен списък с аргументи и техните описания.
Конфигуриране на поща от база данни
Примерите на тази страница предполагат, че вече сте активирали и конфигурирали Database Mail.
Ако не сте конфигурирали Database Mail, вижте Как да изпратите имейл от SQL Server. Тази статия предоставя примери за T-SQL за активиране и конфигуриране на Database Mail. Не отнема много време.