SSIS Foreach文件循环 - 插入文件名表

问题描述 投票:2回答:2

我建立一个SSIS包(使用VS 2017)从一个特定的文件夹加载了一堆CSV文件。它使用ForEach文件循环的伟大工程。数据流任务有一个平面文件源和OLE DB目标。我希望能够保存的文件名在同一个表,沿着从CSV文件中的数据。我怎样才能做到这一点??

非常感谢您的时间和帮助

sql-server ssis
2个回答
2
投票

如果要加载平面文件的整个文件路径另外一种方式是

  • 右键点击Data Flow选项卡平面文件源
  • 点击“显示高级编辑器”
  • 点击“组件属性”
  • 在自定义属性,你会发现“FileNameColumnName”。
  • 如果你给一个名称(例如:FlatFileName),那么将会出现在映射包含文件名值(与文件名的完整路径)源输出的一列。它可以映射到目标的任何可用的列或使用派生列任务中获得唯一的文件名修改。

在我的发展,我已存储的大多是这有助于我更好地跟踪整个路径。

任何人谁遇到这个问题,而不是使用ForEach循环的另外一个方法,你也可以用一个简单的方法

  • 右键单击连接管理器
  • 点击“新建连接”
  • 选择“MULTIFLATFILE”连接类型,然后单击添加。
  • 在连接管理器编辑,插入位置,并使用通配符*(例如为:\\ ABC \ XYZ \文件_ *。TXT)挑选该文件夹中的所有平面文件。
  • 这通过文件夹中的所有平面文件自动循环。

希望这可以帮助!


0
投票

该Foreach文件枚举可以捕捉的文件名,并将其分配给一个变量,然后可以路由到动态加载的连接管理器的连接字符串变量。这同样的方法可以应用到文件名写入到数据库表。

在数据流中,添加一个派生列转换,添加一个名为“文件名”(或其他)的新列,然后设置其值的变量值的Foreach文件枚举被设置为文件名。

© www.soinside.com 2019 - 2024. All rights reserved.