我还要备份一个步骤 - 我试图在IS包中实施健全性检查。我们的想法是整个包在一个读取未提交的事务中运行,最后一步是一个检查,确定存在某些行数,即那种东西。如果它们不是,我想提出异常并回滚事务。
如果你能告诉我如何做到这一点,或者更好的是,建议一个更好的方法来实施理智检查,那就太好了。
答案 0 :(得分:1)
如果观察到的行数与预期的行数不同,则为了使包失败:
RowCount
步骤,手动设置等等中获得。Execute SQL Task
,并将结果集设置为Single Row
。Execute SQL Task
的“结果集”标签中,将此结果集指定给变量。Expression and Constraint
。将值设置为Failure
。在您的表达式中,评估ResultSetVariable <> ExpectedRowCountVariable
。 如果观察到的rowcount不等于预期的rowcount,则包将失败。
答案 1 :(得分:0)
您可以使用以下SQL在SSIS“执行SQL”任务中引发错误并回滚事务:
Raiserror('Something went wrong',16,1)
这将导致“ Execute SQL”任务将错误返回到SSIS包,并且该任务将遵循“红色”(失败)路径。然后,您可以使用此路径回滚事务并进行整理。
这种方法的优势在于,您可以在“执行SQL”任务中进行所有处理,然后根据需要调用Raiserror。