Sql server SSIS在每个循环的第一次传递时使用用户变量覆盖excelfilepath表达式

Sql server SSIS在每个循环的第一次传递时使用用户变量覆盖excelfilepath表达式,sql-server,ssis,Sql Server,Ssis,我到处都在寻找答案,所以我希望有人能帮上忙 我尝试按照SSIS中多个excel文件导入数据的步骤进行操作。我在一个目录中有几个excel 2010文件,正在尝试将它们移动到SQL Server 2008 r2数据库中。我已经通过for-Each(File)循环遵循了执行此操作的所有方向。我已经设置了集合信息,并且正在使用User::Filename变量提取完全限定的文件名。我遇到的问题是,当我检查excel连接管理器-->单击表达式-->通过将其设置为@[User::Filename]来修改ex

我到处都在寻找答案,所以我希望有人能帮上忙

我尝试按照SSIS中多个excel文件导入数据的步骤进行操作。我在一个目录中有几个excel 2010文件,正在尝试将它们移动到SQL Server 2008 r2数据库中。我已经通过for-Each(File)循环遵循了执行此操作的所有方向。我已经设置了集合信息,并且正在使用User::Filename变量提取完全限定的文件名。我遇到的问题是,当我检查excel连接管理器-->单击表达式-->通过将其设置为@[User::Filename]来修改excelfilepath的属性时,SSIS会立即用新的空白值覆盖该属性(第一次)。这会导致我的包在执行过程中失败,因为连接中没有文件名

我已经在包、数据流和excel连接上将delayvalidation属性设置为True,但这并不能解决问题。我还尝试在初始化期间将完全限定的文件名放入User::filename变量,这确实允许我处理一些文件,但当SSIS尝试重新读取初始化期间放入的文件时,会出现锁定错误


我还没有在网上找到这样的东西……希望有人看到了。

我会把这个SSIS包一分为二。主程序包的深度与For-Each文件循环的深度相同,但不包括Excel连接管理器。子包将打开并处理每个Excel文件。它将通过配置父包变量或类似变量来接收文件名变量值

这似乎具有在每个文件完成后“关闭”excel连接的效果


与本机SSIS Excel连接相比,我更喜欢Access数据库引擎中的OLE DB驱动程序。

您是否正在修改“属性表达式编辑器”中的Excel路径,当您单击“表达式”文本框右侧的省略号时,该编辑器会弹出?还是直接在财产上?