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