调试 ssis 包 - 重新加载 InnerPackage.dtsx

Posted

技术标签:

【中文标题】调试 ssis 包 - 重新加载 InnerPackage.dtsx【英文标题】:debug ssis package - reload InnerPackage.dtsx 【发布时间】:2009-06-26 22:41:33 【问题描述】:

我使用向导构建了一个在我的表中循环执行的包。它一直有效,现在我必须改变它。我到底该如何调试这个东西?当我尝试从投标中运行它时,它会打开 InnerPackage.dtsx 进行编辑,然后询问我是否要重新加载它(因为它自循环的最后一次迭代以来已经改变)。我不能足够快地按下是或否来防止包失败,因为“进程无法访问该文件,因为它正被另一个进程使用”。我怎样才能防止它打开,以便我可以在服务器运行包并修复它时达到它实际上失败的地步。 非常感谢。

【问题讨论】:

为什么包变了?它不应该从一个迭代更改为下一个迭代。你怎么称呼这个内包?在循环内执行打包任务? 我真的不知道。我认为它必须从一个迭代更改为下一个迭代,不是吗,否则如何在不同的表上执行相同的任务 - 基于 tableschema.xml 定义?是的,它是循环内的执行任务。 【参考方案1】:

向导在幕后使用了一些“魔法”来完成它的工作,这使得调试变得非常困难。您最好自己重新创建包。更多工作,但您可以更轻松地对其进行调试。

【讨论】:

我完全赞成!如何学习如何在没有副作用的情况下复制他们的魔法 - 即循环遍历表并创建一个可以在事务中运行的动态包?【参考方案2】:

在其上或在其前面的步骤上放置一个断点。

或者,您可能需要复制包,然后使用 BIDS Helper 打开它并重新生成所有 ID (GUID)。 (BID 助手可以为您一步完成)。

【讨论】:

我无法设置断点,因为我的代码全部显示为一行 - 我也非常希望更改。 Bids Helper 很酷,感谢您的建议。我移动了文件并尝试重置 GUID - 不爱。

以上是关于调试 ssis 包 - 重新加载 InnerPackage.dtsx的主要内容,如果未能解决你的问题,请参考以下文章

如何在SQL Server Management Studio 2017中调试SSIS包?

SSIS 包 - 由于错误 0xC0014062 无法加载包

最佳设计模式——用于 DWH 加载的 SSIS 包

通过代码创建和执行的 SSIS 包需要在多次运行后重新启动服务

使用ssis包进行数据入库和加载数据

SSIS包瓶颈插入记录