【问题标题】:SSIS OnPostExecute event: How to see the execution result?SSIS OnPostExecute 事件:如何查看执行结果?
【发布时间】:2019-02-12 23:56:23
【问题描述】:

我使用 OnPreExecute 和 OnPostExecute 将 SQL 任务活动记录到我自己的表中,它们工作正常。这是 OnPreExecute 代码:

declare @audit_key int = ?
declare @package_name varchar(100) = ?
declare @task_name varchar(100) = ?

insert into fct.audit_avetmiss_detail
           (audit_key
           ,package_name
           ,task_name
           ,processing_start
, running_flag
)
select @audit_key, @package_name, @task_name, getdate(),1

..和 OnPostExecute

declare @audit_key int = ?
declare @package_name varchar(100) = ?
declare @task_name varchar(100) = ?
declare @rows_source int = ?
declare @rows_inserted int = ?
declare @rows_discarded int = ?
declare @rows_updated int = ?

update fct.audit_avetmiss_detail
set Processing_end= getdate()
, running_flag = 0
, rows_source = @rows_source 
, rows_inserted = @rows_inserted 
, rows_discarded = @rows_discarded
, rows_updated = @rows_updated
where audit_key=@audit_key 
 and Package_name=@package_name 
 and Task_name=@task_name 

如何在 OnPostExecute 中获取 'Success' 或 'Failure' 的执行结果?

【问题讨论】:

    标签: sql sql-server ssis etl ssis-2017


    【解决方案1】:

    一般情况下,您必须使用系统变量来获取执行结果和发生的错误(如果存在),但根据官方文档OnPostExecute事件处理程序无法访问返回执行结果的系统变量或错误说明。

    @[System::ExecutionStatus] : OnExecStatusChanged 事件处理程序

    @[System::ErrorCode] : OnError 事件处理程序

    也许您应该在它们发生OnError 事件处理程序时记录错误,然后您将假定包失败。并且不要使用OnPostExecute 记录包成功。而不是在包控制流的末尾添加Execute SQL Task。然后如果所有组件都成功,它将被执行并审核包成功。

    有关更多信息,请参阅以下文档:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多