【问题标题】:How to import data from multiple files with different columns to multiple destination in SSIS?如何将具有不同列的多个文件中的数据导入到 SSIS 中的多个目标?
【发布时间】:2025-11-26 17:25:01
【问题描述】:

目标: 从具有不同标题的平面文件中加载数据到每个对应的表中。文件可以通过文件名来区分,因为它包含表的名称。

我尝试过的:

使用 foreach 循环容器循环多个文件,使用变量将传入文件的名称动态设置为平面文件源,并通过选择设置表名的选项对 ole db 目标执行相同操作变量。

  • 这不起作用,因为元数据没有为旧的 db 目标更新。仅在结构相同时才有效。

我的选择:

  1. 对每个文件使用脚本任务和控制流条件以及数据流任务。这样每个数据流都会有一个平面文件源和 ole db 目标。 (如果文件数超过 10 个,则不确定这是否可行,因为数据流任务的数量将等于文件数。)

  2. 使用脚本任务负责将数据加载到各个任务中。 (不确定流读取器是否会像数据流任务一样快)。

除了以上两个选项之外,还有其他方法可以实现这一点,或者为每次数据加载动态创建包吗?

【问题讨论】:

  • 您无法在运行时更改数据流任务中的元数据,因此每组元数据都需要一个平面文件源和 OLE DB 目标。

标签: dynamic import ssis flat-file ssis-2008


【解决方案1】:

您可以查看BiML,它会根据您的源和目标的元数据动态创建和执行包。

但就个人而言,我会使用您的选项 1。10 个文件(和 10 个相应的数据流)不足以让我想把事情复杂化。现在,如果您有大约 50 多个文件,那么我可能想要研究 BiML 或脚本解决方案。

【讨论】: