【发布时间】:2017-01-17 15:56:57
【问题描述】:
我正在使用 SSIS 2008 从 SQL 2008 R2 查询中创建一些 .txt 逗号分隔文件。我有一个包含一行列标题的 template.txt 文档,我使用文件系统任务将其复制到新位置。完成后,我使用新创建的文件作为平面文件目标来接受我的 SQL 行。
我遇到的问题是应该将 SQL 插入全新目标文件的数据流任务失败,报告目标文件被另一个进程锁定。鉴于它是一个全新的文件,在我看来,唯一可以锁定它的是创建文件本身的文件系统任务 - 有没有办法阻止这种情况发生或释放锁定?
文件系统任务和所有其他任务都在 foreach 循环中。
我尝试在流程中插入暂停,并使用脚本任务循环直到文件被解锁;都没有工作。我认为必须删除锁,或者首先不创建锁。
我查找的所有内容似乎都假设如果您等待足够长的时间,锁就会消失,但这不是我在这里的经验。
欢迎任何建议。
编辑:
用执行相同操作的脚本任务替换文件系统任务并没有解决问题 - 无论我是否尝试在 foreach 中编辑它,在 foreach 循环中新创建的文件似乎都被包锁定循环或我在包中尝试过的任何地方。
我需要一些方法来释放锁定或阻止它出现在包内的文件中以便能够更新它 - 有什么建议吗?
【问题讨论】:
标签: file sql-server-2008 ssis locking