SSIS:导入到SQL Server后存档多个.xlsx

时间:2016-03-23 18:51:49

标签: sql-server excel visual-studio ssis

使用: Visual Studio 2008

目标:(1)将包含多个.xlsx文件的目录导入SQL Server,然后(2)将.xlsx文件移动到存档文件夹

关于目标的说明:第(1)部分有效,但当我在第(2)部分尝试添加时,它会中断(下面的错误消息)

封装

Pkg

关于包裹的说明:

Invoice Looper - 枚举所有.xlsx文件(工作)的Foreach容器

Worksheet Looper - 枚举.xlsx文件(工作)中的工作表的Foreach容器

数据流任务 - 将数据从.xlsx文件移动到SQL Server(工作)

发票存档 - 文件系统任务,将.xlsx文件从父目录移动到存档文件夹(不起作用)

问题: pkg在文件系统任务失败,说明:

"该进程无法访问该文件,因为该文件正由另一个进程使用。"

我尝试了什么:当然,我确保没有其他程序(也没有用户)打开过这些文件。我还尝试在数据流任务和发票存档之间添加10秒的延迟。我还基本上尝试将Invoice Archiver放置在Invoice Looper中的工作表循环器中,在一个完全独立的Foreach容器中连接到

1 个答案:

答案 0 :(得分:1)

我认为正在读取Excel文件的SSIS包,在包完成之前将它们锁定

我建议,在处理完每个文件后,您只需将其复制到目标文件夹即可将其删除。然后创建另一个SSIS包,它在第一个之后运行,它删除第二个中的文件。