SSIS OnPostExecute 事件:如何查看执行结果?
SSIS OnPostExecute event: How to see the execution result?
我使用 OnPreExecute 和 OnPostExecute 将 SQL 任务 activity 记录到我自己的 table 中,效果很好。这是 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'的执行结果?
一般情况下,您必须使用系统变量来获取执行结果和发生的错误(如果存在),但根据官方文档OnPostExecute
事件处理程序无法访问系统变量return 执行结果或错误描述。
@[System::ExecutionStatus] : OnExecStatusChanged event handler
@[System::ErrorCode] : OnError event handler
也许您应该在发生错误时记录错误 OnError
事件处理程序,然后您将假定包失败。并且不要使用 OnPostExecute
来记录打包成功。而不是在包控制流的末尾添加 Execute SQL Task
。然后,如果所有组件都成功,它将被执行并审核包成功。
有关详细信息,请参阅以下文档:
我使用 OnPreExecute 和 OnPostExecute 将 SQL 任务 activity 记录到我自己的 table 中,效果很好。这是 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'的执行结果?
一般情况下,您必须使用系统变量来获取执行结果和发生的错误(如果存在),但根据官方文档OnPostExecute
事件处理程序无法访问系统变量return 执行结果或错误描述。
@[System::ExecutionStatus] : OnExecStatusChanged event handler
@[System::ErrorCode] : OnError event handler
也许您应该在发生错误时记录错误 OnError
事件处理程序,然后您将假定包失败。并且不要使用 OnPostExecute
来记录打包成功。而不是在包控制流的末尾添加 Execute SQL Task
。然后,如果所有组件都成功,它将被执行并审核包成功。
有关详细信息,请参阅以下文档: