我在 MSSQL 代理中运行日常工作,它运行一个包以将某个表导出到 excel 文件。完成后它给我发了一封电子邮件。
有几次表是空的,它导出了 0 行。我没有收到作业失败通知,因为作业没有失败。
我想在导出 0 行时收到失败通知。
你将如何实现这一目标?
谢谢
有多种方法可以强制包返回失败(这将导致调用代理作业报告失败)。
一种简单的方法是Row Count
在填充电子表格的数据流任务中放置源和目标之间的任务。将值分配给一个变量,比如@RowsExported。
回到Control Flow
选项卡上,如果包中有更多内容,请在导致其余工作的先例约束上设置条件,@RowsExported > 0
因此包的其余部分仅在发送了行的情况下才会继续。无论包中是否有更多内容,请添加一个新的先例约束,该约束来自具有条件的数据流@RowsExported == 0
。将该约束发送到Execute SQL
仅包含脚本的任务SELECT 1/0;
。
现在,如果导出零行,包将抛出除以零错误,并且调用作业将失败。
当然,还有其他方法,但这种方法可以很快实现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句