Sql Server电子邮件查询结果

我有一个查询,我想运行SQL Server定期计划,并将查询的结果通过电子邮件发送到通讯组列表。 我不寻找任何幻想,只是纯文本与查询文本就足够了我的目的。

有没有什么可以做到这一点,或者我需要写一个应用程序来做到这一点?

您可以使用SQL Server数据库邮件(SQL 2005+,我认为)轻松地做到这一点。 您需要通过“表面区域configuration”工具(或系统选项)启用它,并在使用SQL Server实例之前configuration邮件configuration文件。

你可以看一下SQL BOL,或者这个列出所有DB Mail存储过程的MSDN文章 ,并提供了使用它们的附加链接。

启用数据库邮件并configuration邮件configuration文件后,发送邮件查询结果的语法如下所示:

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' 

在您的声明正常工作之后,您可以创build一个SQL代理作业来执行它,并使其定期运行。

或者,您可以使用osql从任务计划程序运行的batch file运行查询。 这样做的好处是你的batch file可以运行查询来生成输出文件,然后后处理它来做任何整理是合适的。 我自己的偏好不是使用osql,而是从VBScript脚本中完成所有的工作,因为它可以很容易地生成一个漂亮的报告。

squillman的解决scheme虽然更快。

JR