如何故意使SQL Server代理作业步骤失败

时间:2016-11-11 15:31:27

标签: sql-server sql-server-job

我有一个流程,第一步是检查其他流程的状态。如果其他过程完成,我会想要运行其余的步骤,如果不是,我会想要退出这个工作。

我有一张表格可以查看状态,如果完成所有操作,就会标记为“已完成”。那么我应该在第一步中放置什么,以便当状态未完成时,它会使第1步失败?

2 个答案:

答案 0 :(得分:1)

有很多方法可以强制sql-server抛出(或引发)错误,但我建议使用THROW for SQL-Server 2012 +或RAISERROR,因为这是你的实际意图。所以你可以这样做:

IF EXISTS(SELECT * FROM StatusTable WHERE status <> 'done')
BEGIN
    ;THROW 51000, 'Process Is Not Finished', 1
END

答案 1 :(得分:0)

您还可以使用“选择1/0”进行解析,但执行时会出错

相关问题