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任务。嗯。
答案 0 :(得分:1)
使用事件处理程序(在OnExecStatusChanged事件处理程序上)时,ExecutionResult可用:
因此,您可以在每个任务上添加一个OnExecStatusChanged
事件处理程序,并且@[System::ExecutionResult]
变量将可用。
如果您不熟悉事件处理程序,则可以参考以下文章:
您还可以从每个任务的ExecValueVariable
属性中受益: