使用SSIS从Excel导入数据而不知道文件名

时间:2017-10-17 20:17:56

标签: sql-server ssis etl sql-server-2016 sql-server-data-tools

我正在开发一个SSIS包,用于将数据从Excel文件导入SQL Server。我目前的斗争是弄清楚如何让SSIS包带来一个excel文件而不事先知道它的名字。我有一个目录,它同时包含0n个excel文件。我想只使用最早的创建时间来提取文件。这可能吗?

我使用Visual Studio 2015构建SSIS包。我的数据库在SQL Server 2016中。

1 个答案:

答案 0 :(得分:1)

创建动态文件连接:

  1. 创建数据类型String的新变量(名称示例:' SourceFile')。

  2. 在每个循环容器'在“变量映射”下映射该变量'选项卡并设置'枚举器配置'到正确的文件夹和文件扩展名。 ' For Each Loop Container'将从该位置读取文件并将该文件的名称分配给变量。

  3. 在文件连接的表达式属性中,将ConnectionString属性设置为@ [User :: SourceFile]

  4. 这应该使您的文件源动态化。无论文件名称是什么,它都会获取文件,但文件格式必须一致。

    仅使用SSIS任务,我不知道如何利用文件的创建日期来选择最旧的文件,但如果文件名包含文件的创建日期,则可以将日期从@ [User :: SourceFile]变量并将其存储在另一个变量中,每次执行' For Each Loop Container'确定哪个文件最旧。