有人知道如何在SQL Server2005中设置一个作业,将查询结果作为附件通过电子邮件发送出去吗?
最好我想以XML格式通过电子邮件发送它们,这样它们就可以在Excel中很好地打开,但我还是选择CSV…
提前感谢!
-Ev
发布于 2011-04-27 13:23:21
基本上,您可以使用DBMail,如果这是您在SQL server中发送电子邮件的首选方法。下面的another thread向您展示了一个示例,并讨论了通过该方法发送查询结果的限制。
因此,将其添加到您的计划作业中,您应该会获得所需的结果。
如果您想使用CSV或类似的工具,下面介绍如何控制查询输出和在电子邮件straight from MSDN中的位置:
@attach_query_result_as_file=
attach_query_result_as_file指定是否将查询结果集作为附加文件返回。attach_query_result_as_file的类型为bit,默认值为0。
当该值为0时,查询结果将包含在电子邮件正文中@body参数的内容之后。当值为1时,结果以附件形式返回。此参数仅在指定@query时适用。
@query_attachment_filename= query_attachment_filename指定要用于查询附件的结果集的文件名。query_attachment_filename的类型为nvarchar(255),默认值为NULL。当attach_query_result为0时,该参数被忽略。当attach_query_result为1且此参数为NULL时,数据库邮件将创建任意文件名。
@query_result_header= query_result_header指定查询结果是否包括列标题。query_result_header值的类型为bit。当值为1时,查询结果包含列标题。当该值为0时,查询结果不包括列标题。该参数默认为1,仅当指定@query时有效。
@query_result_width = query_result_width是用于格式化查询结果的行宽,以字符为单位。query_result_width类型为int,默认值为256。提供的值必须介于10和32767之间。此参数仅在指定@query时适用。
@query_result_separator= 'query_result_separator‘是用于在查询输出中分隔列的字符。分隔符的类型为char(1)。默认为‘’(空格)。
如果要使用XML,只需确保查询返回XML即可。否则,您必须编写一个过程将表格查询格式化为XML。
Here's another route,但它更复杂,但使您能够更好地控制输出和格式化。
https://stackoverflow.com/questions/5799679
复制相似问题