gpt4 book ai didi

sql-server - SSIS - 在变量中捕获 "ExecutionResult"/"Data Code"?

转载 作者:行者123 更新时间:2023-12-04 01:36:17 27 4
gpt4 key购买 nike

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

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

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

我正在滚动一些自定义日志记录,作为我在 SSIS 中的 ETL 任务的简化/可理解的 View ,以便与 SQL Server 中 SSIS 目录“内部”架构中的更多“厨房水槽”日志记录一起使用。

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

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

本质上,我想要一个日志记录级别(自定义编写),它本质上是:Package XYZ, blah, blah, blah, blah, executionResult: 1

我再次意识到这是在 executable_statistics 中,但不是我喜欢的方式,而且我目前只有 SQL Sever 2012,所以也不能自定义太多。

本质上,我想知道一个包最终是“成功”还是“失败”。错误在正轨上,但不尽相同。因为包(或容器)可能有错误但最终仍然成功。

我想我可以根据一个包/容器是“成功”还是“失败”来临时安排两个单独的执行 SQL 任务,然后从那里开始。嗯。

最佳答案

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

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

如果您不熟悉事件处理程序,可以引用以下文章:


更新1

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

enter image description here

关于sql-server - SSIS - 在变量中捕获 "ExecutionResult"/"Data Code"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55289991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com