Recebi a tarefa de enviar um pequeno relatório mensal para um dos meus clientes. O relatório já era executado manualmente na instância, a saída copiada para uma planilha e enviada ao cliente como um anexo.
Estou procurando uma solução mais permanente, então pretendo usar sp_send_dbmail
o procedimento armazenado para executar a consulta e enviá-la como anexo.
Tudo funciona menos a formatação da mensagem. Inicialmente tentei anexar a saída como um arquivo CSV com um @query_result_seperator = ','
mas os resultados estavam em toda parte!
Quando executo o relatório normalmente, a saída parece boa no SQL. Mas enviá-lo como um CSV ou apenas no corpo da mensagem não.
Acho que pode funcionar melhor se eu exportar a saída como HTML e enviá-la como um anexo/ou como XML, mas não sei como fazer isso.
Alguém tem alguma sugestão?
Desde já, obrigado!
Se você ainda precisar exportar o arquivo e enviá-lo como anexo, isso também pode ser totalmente automatizado no SQL Server.
A exportação como CSV pode ser feita via BCP . Há mais detalhes nesta resposta , mas a ideia principal é:
Você então anexaria o arquivo ao e-mail em
sp_send_dbmail
.Você pode, se quiser, anexar vários arquivos a um e-mail .
Sim, você pode enviar o relatório via formato HTML, por exemplo, conforme listado no MS:
Cenário: Este exemplo envia uma mensagem de e-mail para Dan Wilson usando o endereço de e-mail [email protected]. A mensagem tem o assunto Lista de Ordens de Serviço e contém um documento HTML que mostra as ordens de serviço com uma Data de Vencimento inferior a dois dias após 30 de abril de 2004. O Database Mail envia a mensagem no formato HTML.
Além disso, você pode usar a leitura de e-mail formatado em HTML no SQL Server usando a tarefa de script do SSIS
Além disso, se você deseja agendar um relatório HTML, leia isso aqui