对于每个循环SSIS。取决于SQL查询

时间:2019-03-14 06:35:32

标签: sql-server ssis etl sql-server-data-tools foreach-loop-container

  1. 我有一个SSIS程序包,该程序包检查跟踪表中是否存在未处理的文件,然后对其进行处理。到现在为止,只有一个文件会进来,我们将对其进行处理,因此将对流程进行相应的设计。

  2. 但是现在可以一次输入多个文件,我们将这些文件存储在跟踪表中,并且有一列可以跟踪未处理的文件。

我正在尝试使用For Each循环来处理所有未处理的文件。因此,我获得了未处理文件的数量,并想通过将参数传递给步骤1来简单地对Point 1进行调整,但是我并未成功使用Foreach From Variable Enumerator来完成。我想念什么吗?

1 个答案:

答案 0 :(得分:0)

您可以按照以下步骤进行操作:

  1. 添加执行SQL任务以获取未处理的文件并将结果集存储在类型为System.Object的变量中
  2. 添加一个Foreach循环容器,将类型更改为ADO enumerator,然后将变量选择为souce
  3. 在“变量映射”选项卡中,将结果(每个文件路径)映射到字符串类型的变量
  4. 在foreach循环容器内添加一个数据流任务,其中包含平面文件源并实现所需的处理逻辑
  5. 添加平面文件连接管理器以定义列
  6. 单击平面文件连接管理器,然后按F4以显示“属性”选项卡,然后转到表达式。
  7. 选择connectiinstring属性,并使用将文件路径保存为表达式的变量

详细文章