我正在开发一个SSIS包,用于将数据从Excel文件导入SQL Server。我目前的斗争是弄清楚如何让SSIS包带来一个excel文件而不事先知道它的名字。我有一个目录,它同时包含0
和n
个excel文件。我想只使用最早的创建时间来提取文件。这可能吗?
我使用Visual Studio 2015构建SSIS包。我的数据库在SQL Server 2016中。
答案 0 :(得分:1)
创建动态文件连接:
创建数据类型String的新变量(名称示例:' SourceFile')。
在每个循环容器'在“变量映射”下映射该变量'选项卡并设置'枚举器配置'到正确的文件夹和文件扩展名。 ' For Each Loop Container'将从该位置读取文件并将该文件的名称分配给变量。
在文件连接的表达式属性中,将ConnectionString属性设置为@ [User :: SourceFile]
这应该使您的文件源动态化。无论文件名称是什么,它都会获取文件,但文件格式必须一致。
仅使用SSIS任务,我不知道如何利用文件的创建日期来选择最旧的文件,但如果文件名包含文件的创建日期,则可以将日期从@ [User :: SourceFile]变量并将其存储在另一个变量中,每次执行' For Each Loop Container'确定哪个文件最旧。