2016-11-11 121 views
2

我有一個進程,第一步是檢查其他進程的狀態。如果其他過程完成,我想運行其餘的步驟,如果沒有,我會想要退出工作。如何使SQL Server代理作業步驟失敗故意

我有一張查看狀態的表,如果全​​部完成,它將標記爲「完成」。那麼我應該在第一步中做什麼,以便在狀態不是「完成」時,它會使第1步失敗?

+0

所以你想要的SQL總是給出錯誤?例如'select(Select 1 union SELECT 2)X' – Cato

+0

'RAISERROR('Fail!',16,1)' –

回答

1

有很多方法可以強制sql-server拋出(或引發)錯誤,但我建議在下面的SQL-Server 2012 +或RAISERROR中使用THROW,因爲這是您的實際意圖。所以你可以這樣做:

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