【问题标题】:How to save query results dyanmically in number of Excel Workbooks and send them as attachments如何以 Excel 工作簿的数量动态保存查询结果并将其作为附件发送
【发布时间】:2016-04-12 20:48:38
【问题描述】:

我有一个创建数据库表的查询-mytable,如下所示-

Identifier Email          Column_A        Column_B 
  1        abc@abc.com     A1               B1
  1        abc@abc.com     A2               B2
  2        xyz@xyz.com     A3               B3

我想将具有相同标识符的所有行导出到同一个 Excel 工作簿中,并将该工作簿作为附件发送到电子邮件地址。例如,在上述情况下,将有 2 个不同的工作簿包含具有标识符 1 和 2 的行。

mytable 中的行数在我每次运行查询时都会发生变化,因此标识符的数量也会发生变化。

我知道我可以使用 SSIS 包保存查询结果,但我认为,在这种情况下,mytable 的所有行都将保存在一个工作簿中。

【问题讨论】:

    标签: sql-server-2008 ssis


    【解决方案1】:

    未经测试,但这是我的理论解决方案:

    创建一个用于保存“当前”标识符(我认为是 Int32)的包级变量和一个用于保存结果集的对象类型变量。

    从 Execute SQL 任务开始,获取您要导入的所有标识符的 Distinct 列表,并使用它来填充 Object-type 变量。

    使用 ForEach 循环遍历 Object 变量,并使用当前标识符填充 Int32 变量。

    在循环中,将仅从表中选择具有当前标识符(存储在 Int32 变量中)的行的数据流放入 Excel。

    在您的 Excel 连接管理器中,使用 Int32 变量来命名工作表。

    这应该会生成一个最终的 Excel 文件,其中每个标识符都有不同的工作表。可能需要调整,因为我还没有实际测试过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 2015-09-07
      • 1970-01-01
      • 2021-11-25
      相关资源
      最近更新 更多