SSIS-捕获变量中的“ ExecutionResult” /“数据代码”吗?

时间:2019-03-21 22:07:40

标签: sql-server variables logging ssis

SSIS似乎在internal.executable_statistics下的SSISDB /目录中有一些未公开的变量,称为execute_result。

但是在某些地方也被称为DataCode,但它实际上是针对每个可执行文件(因此是任务或包级别等)。

0 =成功,1 =失败,2 =完成,3 =取消。

我正在滚动一些自定义日志记录,就像对SSIS中的ETL任务进行简化/易于理解的视图,以便与SQL Server SSIS目录“内部”模式中的更多“厨房接收器”日志记录一起使用。

对于任何特定的可执行文件,似乎没有系统变量可以模仿/捕获ExecutionResult。有什么办法可以捕获它并将其写入表或将其保存在变量中?

我已经看到一些尝试在不得不引用.dtsx文件路径等的脚本任务中使用它的方法---看起来很复杂,但是有人知道一种优雅的方法吗?

本质上,我想要一个实质上是以下级别的日志记录(自定义):包XYZ,等等,等等,等等,执行结果:1

同样,我知道这是在execute_statistics中,但不是我喜欢的方式,而且我目前只有SQL Sever 2012,因此也无法自定义太多。

本质上,我想知道某个软件包最终是“成功”还是“失败”。错误在正确的轨道上,但不尽相同。既然包(或容器)有可能出现错误,但最终还是会成功。

我想我可以根据包/容器是“成功”还是“失败”并从那里去,来绑定两个单独的Execute SQL任务。嗯。

1 个答案:

答案 0 :(得分:1)

使用事件处理程序(在OnExecStatusChanged事件处理程序上)时,ExecutionResult可用:

因此,您可以在每个任务上添加一个OnExecStatusChanged事件处理程序,并且@[System::ExecutionResult]变量将可用。

如果您不熟悉事件处理程序,则可以参考以下文章:


更新1

您还可以从每个任务的ExecValueVariable属性中受益:

enter image description here