我正在使用SSDT2017。有3个数据流任务(它们使用优先级约束连接),这些任务将Excel中的数据加载到数据库表中。当我单独运行每个任务时,它显示为成功,但是当我运行整个程序包时,它显示为已完成,并且任务上没有绿色勾号,这意味着任务没有得到执行。将Excel的RetainSameConnection属性更改为True后,所有任务都成功完成。
在早期版本中我没有看到这种行为。这是2017版的新变化还是我遗漏了什么?
答案 0 :(得分:1)
根据问题和评论,您正在使用3个数据流任务,其中包含3个使用同一连接管理器的Excel源组件。
在验证阶段执行包时,此组件中的每个组件都必须尝试从连接管理器获取连接以读取元数据,并尝试保持该连接打开,直到必须执行该连接为止,因为存在许多连接尝试打开相同连接的文件会导致问题。
使用RetainSameConnection
时,程序包只运行一次acquireconnection方法并多次使用,即可解决问题。
在所有数据流任务上,尝试将Delay Validation
的{{1}}属性更改为True
,并将ValidateExternalMetadata
属性更改为False
,这可能会解决此问题如果仅出于验证目的而获取连接。如果它不起作用,则意味着即使尚未开始执行数据流任务,也将调用获取连接方法来锁定文件以供读取。