使用 ssis 脚本任务将查询结果附加为电子邮件中的 excel,而不存储 excel

Posted

技术标签:

【中文标题】使用 ssis 脚本任务将查询结果附加为电子邮件中的 excel,而不存储 excel【英文标题】:Attach query result as excel in email without storing excel using ssis script task 【发布时间】:2020-08-29 13:08:56 【问题描述】:

我需要使用 SSIS 脚本任务将表格的查询结果作为 excel 附件发送到电子邮件中。我不想存储 excel,因为它将在我的生产服务器中。 我们可以通过电子邮件将表格中的查询结果作为 abc.csv/abc.xls 附件发送吗?

谁能帮忙写代码?

【问题讨论】:

不,*** 无法帮助您编写代码。这不是这个网站存在的目的。 当您开始或开始使用新的语言/环境时,最大的挑战是将问题分解为可管理的部分。看来您已经掌握了需要发生的事情(运行带有结果的查询,以类似表格的格式(csv、excel 等)存储结果、发送电子邮件、发送带有附件的电子邮件)。这些步骤中的每一个在此站点上都有多个答案,而且互联网上的许多解决方案仅在搜索引擎之外。细化您的问题,将其提炼成您无法获得或产生不正确结果的部分。然后向我们展示作品,以便我们提供帮助。 【参考方案1】:

是的,你可以这样做。只是一些提示:

    您必须将查询结果作为 RecordSet 变量传递给脚本任务。 然后,在脚本任务的代码中,将此 RecordSet 的内容转换为 CSV,写入 Stream(很可能是 MemoryStream)。 假设您使用SmtpClient 类来发送电子邮件,那么您可以将Stream 传递给您添加到代表您的电子邮件的MailMessage 实例的Attachment 类的构造函数。

【讨论】:

以上是关于使用 ssis 脚本任务将查询结果附加为电子邮件中的 excel,而不存储 excel的主要内容,如果未能解决你的问题,请参考以下文章

查询值和目标字段的数量不同 - C# 脚本任务 SSIS - 使用动态列将 SQL Proc 的结果导出到 Excel

使用 SSIS 脚本任务刷新 Excel

SSIS 脚本任务引发死锁错误

SSIS 脚本任务基于路径的结果

使用 Visual Studio 2010 的 SSIS 发送邮件任务脚本

无法使用脚本任务从 SSIS 发送邮件 - 超时