Resultados da consulta de e-mail do Sql Server

2

Eu tenho uma consulta que gostaria de executar no SQL Server regularmente e ter os resultados da consulta enviados por email para uma lista de distribuição. Eu não estou procurando nada extravagante, apenas texto simples com o texto da consulta seria suficiente para meus propósitos.

Existe alguma coisa que funcione assim, ou eu preciso escrever um aplicativo para fazer isso?

    
por squillman 21.07.2009 / 00:56

2 respostas

5

Você pode facilmente fazer isso usando o SQL Server DB Mail (SQL 2005+, eu acho). Você precisará ativá-lo por meio da ferramenta Configuração da Área de Superfície (ou das opções do sistema) e configurar os perfis de email em sua instância do SQL Server antes de usá-lo.

Você pode consultar o SQL BOL ou este artigo do MSDN que lista todos os procedimentos armazenados do DB Mail e fornece links adicionais para usá-los.

Depois que você tiver o DB Mail habilitado e tiver configurado um perfil de email, a sintaxe para enviar os resultados da consulta por e-mail seria algo assim:

EXEC msdb.dbo.sp_send_dbmail
    @recipients=N'[email protected]',
    @body='Query Results Are Attached', 
    @subject ='Query Results',
    @profile_name ='MyDBMailProfile',
    @query ='SELECT * FROM mytable', 
    @attach_query_result_as_file = 1,
    @query_attachment_filename ='QueryResults.txt'

Depois de ter sua instrução funcionando corretamente, você pode criar um trabalho do SQL Agent para executá-lo e executá-lo regularmente.

    
por 21.07.2009 / 01:13
0

Como alternativa, você pode usar osql para executar a consulta a partir de um arquivo em lotes executado no Agendador de Tarefas. A vantagem disso é que o arquivo em lote pode executar a consulta para gerar o arquivo de saída e, em seguida, processá-lo para fazer o que for necessário. Minha preferência é não usar o osql, mas fazer tudo a partir de um script VBScript, pois facilita a geração de um relatório bonito.

A solução de squillman é mais rápida.

JR

    
por 21.07.2009 / 11:18