Foreach容器循环通过多个Excel文件加载

时间:2014-06-07 15:10:01

标签: sql-server ssis sql-server-2008-r2

我以前有过Packages,我在文件夹中循环多个Text文件并加载到sql server表中。

现在我被要求创建一个包,它将遍历文件夹中的多个Excel文件并将它们加载到sql server表中。

我通过以下步骤创建了这个软件包,假设它不应该与我在其他软件包中循环通过多个Flat文件的软件包有很大的不同。

  1. 添加了Execute Sql Task,截断我的临时表,一个简单的Truncate表语句。
  2. 添加了Foreach Loop Container。选中Foreach File Enumerator并创建一个名为File_Path的变量,其数据类型为字符串。 enter image description here
    enter image description here

  3. 添加了Data Flow Task

  4. 添加了Excel Data Source。并配置Excel Connection manager选择任何一个' Excel'目标文件夹中的文件。 (此时配置正确,因为它没有显示任何红叉或交战消息。)
  5. 然后,我选择了Excel File Connection ManagerProperties窗口Expressions下的所选Connection String属性,并使用了用户变量@User::File_Path
  6. enter image description here

    此时,Excel数据源显示Red Cross,因为它需要进一步配置。

    enter image description here

    我尝试了一些事情,例如将Data Access ModeTable name更改为Table Name or View Name Variable,并传递变量@User::File_Path,但它会给我以下错误。

    enter image description here

    有人可以查看我出错的地方和建议,以及如何解决这个问题?非常感谢任何建议或正确方向的指针。

    谢谢。

1 个答案:

答案 0 :(得分:1)

您不应在ConnectionString属性上使用表达式,而应在 ExcelFilePath 属性上使用。