MSSQL 代理:如果导出 0 行,则通知失败

政府

我在 MSSQL 代理中运行日常工作,它运行一个包以将某个表导出到 excel 文件。完成后它给我发了一封电子邮件。

有几次表是空的,它导出了 0 行。我没有收到作业失败通知,因为作业没有失败。

我想在导出 0 行时收到失败通知。

你将如何实现这一目标?

谢谢

埃里克·布兰特

有多种方法可以强制包返回失败(这将导致调用代理作业报告失败)。

一种简单的方法是Row Count在填充电子表格的数据流任务中放置源和目标之间的任务。将值分配给一个变量,比如@RowsExported。

回到Control Flow选项卡上,如果包中有更多内容,请在导致其余工作的先例约束上设置条件,@RowsExported > 0因此包的其余部分仅在发送了行的情况下才会继续。无论包中是否有更多内容,请添加一个新的先例约束,该约束来自具有条件的数据流@RowsExported == 0将该约束发送到Execute SQL仅包含脚本任务SELECT 1/0;

现在,如果导出零行,包将抛出除以零错误,并且调用作业将失败。

当然,还有其他方法,但这种方法可以很快实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章