加载平面文件/将文件名添加到表列

时间:2017-12-29 19:16:58

标签: sql-server variables ssis etl

我正在尝试将大量平面文件加载到sql表中并向表中添加文件名列。

在控制流程中我有2个foreech循环抓取文件名并将它们传递给2个变量。

这是我的数据流中出现问题的地方,我首先将我的平面文件源指向派生列然后指向OLE DB目的地..在OLE DB目的地中它识别我的文件名派生列,但是当我运行包时它执行正常它只是创建表,它不插入平面文件数据或来自2个变量的文件名

here is what I have in my data flow tab

2 个答案:

答案 0 :(得分:1)

无法在同一DataFlow Task内读取变量值更改。您必须编写一个表达式,在Script Task中的Expression TaskForEach Loop container内获取目标表名称,然后将此任务连接到DataFlow Task。请注意,您必须将Delay Validation的{​​{1}}设置为DataFlow Task

答案 1 :(得分:1)

平面文件源有一个特殊属性,用于提供文件名:

  1. 右键单击平面文件连接管理器,然后转到高级属性。
  2. 在组件属性标签中,转到自定义属性> FileNameColumnName并输入名称,即FileName
  3. 一旦你点击确定保存更改,FileName列将被添加到输出缓冲区,这可以映射到数据流中。