SSIS 中的断点对于在多个级别上理解数据流非常有用。例如,您可以使用 SSIS 断点来了解 Pre-Execution、Post-Execution、每个 Iteration 等时的变量值。
下面我们以一个示例介绍配置 SSIS 断点的分步方法。对于此断点演示,我们将使用下面显示的包。
我建议您参考 SSIS 中的 Execute SQL Task 完整行集 来理解完整的包设置以及我们使用的数据。

此 SSIS 断点包使用的变量是

以上包使用的数据是

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

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

以下是 SSIS 断点列表及其描述。
| 断点条件 | 描述 |
|---|---|
| 当任务或容器接收到 OnPreExecute 事件时 |
在任务执行之前引发或调用此事件。在任务或容器运行之前监视其变量很有用。 |
| 当任务或容器接收到 OnPostExecute 事件时 |
在任务完成或执行后立即引发或调用此事件。OnPostExecute 事件对于在任务完成后监视任务或容器变量很有用。 |
| 当任务或容器接收到 OnError 事件时 |
当任务或容器发生错误时调用 OnError 事件 |
| 当任务或容器接收到 OnWarning 事件时 | 当任务或容器引发警告时调用 OnWarning 事件。 |
| 当任务或容器接收到 OnInformation 事件时 | 当容器或任务需要提供任何信息时,您可以使用此 OnInformation 事件。 |
| 当任务或容器接收到 OnTaskFailed 事件时 | 当任务失败时调用此 SSIS 断点事件 |
| 当任务或容器接收到 OnProgress 事件时 | 调用此事件以更新任务执行进度。 |
| 当任务或容器接收到 OnQuerycancel 事件时 | 在处理任务时,您可以在任何时候调用此事件。它有助于随时取消执行。 |
| 当任务或容器接收到 OnVariableValueChanged 事件时 |
当变量值更改时调用 OnVariableValueChanged 事件。要引发此事件,您必须将变量的 RaiseChangeEvent 设置为 TRUE。 |
| 当任务或容器接收到 OnCustomEvent 事件时 |
如果要引发任何任务定义的事件,请使用此 OnCustomEvent 事件。 |
对于此 SSIS 断点演示,我们将选择 Preexecute 事件和 Post Execute 事件上的断点。

SSIS 断点允许四种不同的命中次数类型选项,它们是
| 命中次数类型 | 描述 |
|---|---|
| 始终 | 当断点命中时,执行将被挂起。 |
| 命中次数等于 | 当命中次数等于断点发生的次数时,执行将被挂起。 |
| 命中次数大于或等于 | 当命中次数大于或等于断点发生的次数时,执行将被挂起。 |
| 命中次数倍数 | 如果将此选项设置为 4,则每第四次执行将被挂起。 |

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

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

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

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

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

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

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

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

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