使用SSIS在程序包故障时删除和还原数据库

时间:2015-05-01 08:17:33

标签: ssis

比如说我有一个SSIS包,其中包含超过20个步骤来执行各种任务,我希望在包失败时执行以下操作:

1。)删除数据库

2。)恢复开头的备份

3.。)发送包含日志文件的电子邮件

目前我已将这些步骤添加到包级别的OnError事件中,这与每次包失败时通常执行此操作的事实不同。我理解OnError可能会在整个程序包终止之前多次出现,但我不明白我怎么能以其他方式做我想做的事情?

我基本上想要在程序包终止上运行上述步骤,即它将运行一次而不是几次,具体取决于导致程序包失败的错误数量。我不介意收到两封电子邮件,唯一不同的是一个额外的错误,但我不认为放弃/恢复数据库两次是没有理由的。我找不到合适的活动吗?

1 个答案:

答案 0 :(得分:0)

一种解决方案是将包的所有步骤放在容器中,更改OnError处理程序以增加ErrorCount变量,并将另一个容器发生在主容器的OnCompletion上,该容器检查ErrorCount并执行当前的操作OnError处理程序,如果计数> 0