有谁知道如何在SQL Server 2005中设置一个作业,将作为附件的查询结果通过电子邮件发送?
我希望以XML形式发送电子邮件,以便在Excel中很好地打开它们,但我会满足于CSV ...
提前致谢!
-ev
答案 0 :(得分:4)
基本上,您可以使用DBMail,如果这是您在SQL Server中发送电子邮件的首选方法。这里的another thread向您展示了一个示例,并讨论了通过该方法发送查询结果的限制。
因此,将此添加到您的预定作业中,您应该得到所需的结果。
如果您要使用CSV或类似内容,以下是如何控制电子邮件straight from MSDN中的查询输出和展示位置:
[ @attach_query_result_as_file = ] attach_query_result_as_file指定 查询的结果集是否为 作为附件返回。 attach_query_result_as_file属于类型 位,默认值为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值 是类型位。当值为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使用SSIS,但它更复杂,但可以让您更好地控制输出和格式。