2

我有一些包用于使用 SQL CDC 加载数据仓库数据库。该设计大致基于使用 CDC 的 codeplex 示例解决方案。

基本结构由一个 Master 包组成,它设置 lsn 区间变量,验证区间是否有效,然后为要从中提取的每个数据库调用两个不同的子包 1 并将区间变量传递给它们。

除了消除这些子包并将它们的内容移动到主包中的序列容器中之外,有什么方法可以使用 Bids 来调试包?

这些包不能单独运行,因为它们依赖于 master 来设置间隔变量。

4

2 回答 2

1

我使用子包中的脚本任务将变量设置为预期值,然后自行运行子包。这样你就可以在 BIDS 中调试它。因此,在这种情况下,您将在脚本任务中设置间隔值。然后,您将任务作为在包中运行的第一件事(您可以将其他所有内容放在序列容器中),然后在 BIDS 中运行子包。

我过去这样做的另一种方法是在子包中设置变量的默认值,但我更喜欢脚本任务 - 它更干净:完成后我删除任务并且我的包和以前一样.

如果您不确定变量值应该是什么,那么您可以运行主包并通过查看本地窗口从中获取值,然后使用这些值设置您的包。我希望这可以帮助别人。

于 2012-12-17T08:04:53.013 回答
0

我的经验是,您可以在 BIDS 中运行父包(只要子包位于本地可以访问的位置),您将能够看到整个包组的执行情况。当调用子包时,BIDS 会在界面中切换到该包并继续向您显示流程。您可以在每个包中设置数据查看器,以便在需要时查看数据。(所有包都应该在同一个解决方案/项目中才能正常工作。)

于 2012-09-11T22:12:05.390 回答