SSIS 中的断点

SSIS 中的断点对于在多个级别上理解数据流非常有用。例如,您可以使用 SSIS 断点来了解 Pre-Execution、Post-Execution、每个 Iteration 等时的变量值。

下面我们以一个示例介绍配置 SSIS 断点的分步方法。对于此断点演示,我们将使用下面显示的包。

我建议您参考 SSIS 中的 Execute SQL Task 完整行集 来理解完整的包设置以及我们使用的数据。

此 SSIS 断点包使用的变量是

以上包使用的数据是

SSIS 中的断点示例

在此示例中,我们将展示如何为 Foreach Loop Container 和数据流任务添加断点。要在容器上添加 SSIS 断点,请右键单击 Foreach Loop Container 将打开上下文菜单。请从中选择“编辑断点…”选项。

Breakpoints in SSIS 3

选择“编辑断点…”选项后,将打开一个名为“设置断点”的新窗口。

Breakpoints in SSIS 4

以下是 SSIS 断点列表及其描述。

断点条件描述
当任务或容器接收到 OnPreExecute 事件时

在任务执行之前引发或调用此事件。在任务或容器运行之前监视其变量很有用。

当任务或容器接收到 OnPostExecute 事件时

在任务完成或执行后立即引发或调用此事件。OnPostExecute 事件对于在任务完成后监视任务或容器变量很有用。

当任务或容器接收到 OnError 事件时

当任务或容器发生错误时调用 OnError 事件

当任务或容器接收到 OnWarning 事件时当任务或容器引发警告时调用 OnWarning 事件。
当任务或容器接收到 OnInformation 事件时当容器或任务需要提供任何信息时,您可以使用此 OnInformation 事件。
当任务或容器接收到 OnTaskFailed 事件时当任务失败时调用此 SSIS 断点事件
当任务或容器接收到 OnProgress 事件时调用此事件以更新任务执行进度。
当任务或容器接收到 OnQuerycancel 事件时在处理任务时,您可以在任何时候调用此事件。它有助于随时取消执行。
当任务或容器接收到 OnVariableValueChanged 事件时

当变量值更改时调用 OnVariableValueChanged 事件。要引发此事件,您必须将变量的 RaiseChangeEvent 设置为 TRUE。

当任务或容器接收到 OnCustomEvent 事件时

如果要引发任何任务定义的事件,请使用此 OnCustomEvent 事件。

对于此 SSIS 断点演示,我们将选择 Preexecute 事件和 Post Execute 事件上的断点。

Breakpoints in SSIS 5

SSIS 断点允许四种不同的命中次数类型选项,它们是

命中次数类型描述
始终当断点命中时,执行将被挂起。
命中次数等于当命中次数等于断点发生的次数时,执行将被挂起。
命中次数大于或等于当命中次数大于或等于断点发生的次数时,执行将被挂起。
命中次数倍数如果将此选项设置为 4,则每第四次执行将被挂起。
Breakpoints in SSIS 6

单击“确定”关闭断点配置。从下面的屏幕截图中,您可以看到 Foreach Loop Container 上有一个红色的圆圈。

让我们运行 SSIS 断点包,并在局部窗口中检查变量流。

Breakpoints in SSIS 8

我认为局部窗口中有太多的系统变量。所以,让我选择所需的变量(用户定义的变量),然后右键单击它们将打开上下文菜单。请选择“添加监视”选项。

现在您可以看到监视窗口仅显示用户定义的变量。让我点击继续按钮

Breakpoints in SSIS 10

现在您可以看到变量值已替换为最后插入的行。

Breakpoints in SSIS 11

让我删除 Foreach Loop Container 上的断点,并将 SSIS 断点添加到数据流任务。

Breakpoints 12

让我们运行 SSIS 断点包。如您所见,变量已更新为第一行。

Breakpoints in SSIS 13

单击“继续”按钮,变量将更新为第二行

Variable update with second row

一旦表插入完成,任务将完成。

Task Complete