Como enviar um relatório de html agendado a partir de um servidor sql

Aprenda a adquirir informações a partir de objetos que estão prestes a expirar e enviar os dados para e-mail diariamente a todos os interessados. Usando o SQL Server eo código .Net.

passos

1
Digite a consulta para obter os dados em bruto. Use o banco de dados "AdventureWorks" para o exemplo abaixo. Tente usar mais do que a informação da data atual.
  • Aqui estão os resultados.


  • 2
    Executar a consulta e envia os resultados. SQL Server (desde 2005) tem um procedimento armazenado para enviar e-mails diretamente a partir do procedimento de banco de dados. SQL Mail deve ser configurado e executado no servidor para executar este procedimento armazenado. Usando msdb.dbo.sp_send_dbmail você pode enviar os resultados de uma consulta como e-mail, tão simples como pode ser visto na imagem.
  • Isto é o que parece no Outlook.


  • 3
    Considere o envio de dados em HTML. Se você precisa os resultados têm uma aparência mais profissional, a melhor opção é enviá-los como HTML, uma das funções do procedimento sdb.dbo.sp_send_dbmail armazenado. Combinando esta opção e XML recursos do SQL Server escreve um procedimento armazenado para transformar os resultados em uma tabela HTML, como pode ser visto no procedimento de imagem.
  • O resultado do procedimento acima é armazenado em um relatório HTML bruto. Olhe para a parte "para o caminho xml ( `tr`)" consulta, que simplesmente cria a estrutura da tabela tag tr-TD. Executar o relatório como mostrado na imagem.
  • Isto é o que você recebe.


  • 4
    Agora você pode adicionar estilo o html que você já tem no procedimento armazenado, desta forma (ver imagem).
  • Isto é o que parece no final.
  • 5
    Programá-lo e assistir fuciona. Como esta é uma consulta simples, você pode incluir em qualquer tarefa SQL. Não é difícil para obter uma lista de destinatários com endereços de e-mail e criar um ciclo que executa o procedimento msdb.dbo.sp_send_dbmail na mesma tarefa. Finalmente, o programa de tarefa para executar as vezes que você precisa, e obter um relatório diário diretamente do SQL.
  • Artigos Relacionados