No SQL Server, você pode enviar emails usando o
sp_send_dbmail
procedimento armazenado no msdb base de dados. Uma das opções que você tem ao executar esse procedimento é incluir ou não os resultados de uma consulta.
Outra opção que você tem é enviar ou não esses resultados em um anexo.
Exemplo
Para enviar por e-mail os resultados de uma consulta, use o
@query
argumento. Para anexar esses resultados como um anexo, use o
@attach_query_result_as_file
argumento. Isso aceita um bit valor, com o padrão sendo 0
(sem anexo). Para enviar os resultados em um anexo, basta fornecer um
1
para este argumento. 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';
Este exemplo envia um e-mail com os resultados anexados como um .txt Arquivo. O nome foi gerado automaticamente pelo Database Mail.
Por padrão, o tamanho máximo de arquivo para anexos é de 1 MB por arquivo, mas você pode alterar isso com o
sysmail_configure_sp
procedimento armazenado. Forneça um nome para o anexo
Você também tem a opção de fornecer seu próprio nome para o anexo. Você pode fazer isso com o
@query_attachment_filename
argumento. 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';
Mais opções
Aqui está outro exemplo que expande o anterior. Aqui, incluí várias opções que você pode achar úteis ao enviar os resultados da consulta como um anexo de e-mail.
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';
Alguns deles são definidos com seu valor padrão e outros não. Por exemplo, alterei
@query_result_no_padding
para 1
para remover o preenchimento de dentro das colunas. Eu também usei @query_result_separator
para alterar o separador do espaço padrão para uma vírgula. O
sp_send_dbmail
procedimento aceita mais argumentos do que eu listei aqui. Consulte a documentação da Microsoft para obter uma lista completa de argumentos e suas descrições. Configurando o Database Mail
Os exemplos nesta página pressupõem que você já habilitou e configurou o Database Mail.
Se você não tiver o Database Mail configurado, consulte Como enviar email do SQL Server. Esse artigo fornece exemplos para habilitar e configurar o Database Mail com T-SQL.