Sql Server电子邮件查询结果

Sql Server电子邮件查询结果

我有一个查询,希望定期针对 SQL Server 运行该查询,并将查询结果通过电子邮件发送到分发列表。我不需要任何花哨的东西,只要带有查询文本的纯文本就足以满足我的目的。

有没有什么可以立即实现这一点的东西,或者我是否需要编写一个应用程序来做到这一点?

答案1

您可以使用 SQL Server DB Mail(我认为是 SQL 2005+)轻松完成此操作。您需要通过表面区域配置工具(或系统选项)启用它,并在使用它之前在 SQL Server 实例上配置邮件配置文件。

您可以查看 SQL BOL,或者这篇 MSDN 文章其中列出了所有 DB Mail 存储过程并提供了使用它们的其他链接。

一旦启用了 DB Mail 并配置了邮件配置文件,通过电子邮件发送查询结果的语法将如下所示:

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'

在您的语句正常运行后,您可以创建一个 SQL 代理作业来执行它并让它按照定期计划运行。

答案2

或者,您可以使用 osql 从任务计划程序运行的批处理文件中运行查询。这样做的好处是,您的批处理文件可以运行查询以生成输出文件,然后对其进行后处理以进行适当的整理。我个人的偏好不是使用 osql,而是从 VBScript 脚本执行所有操作,因为这样可以轻松生成漂亮的报告。

不过 squillman 的解决方案更快。

JR

相关内容