2
我有一個進程,第一步是檢查其他進程的狀態。如果其他過程完成,我想運行其餘的步驟,如果沒有,我會想要退出工作。如何使SQL Server代理作業步驟失敗故意
我有一張查看狀態的表,如果全部完成,它將標記爲「完成」。那麼我應該在第一步中做什麼,以便在狀態不是「完成」時,它會使第1步失敗?
我有一個進程,第一步是檢查其他進程的狀態。如果其他過程完成,我想運行其餘的步驟,如果沒有,我會想要退出工作。如何使SQL Server代理作業步驟失敗故意
我有一張查看狀態的表,如果全部完成,它將標記爲「完成」。那麼我應該在第一步中做什麼,以便在狀態不是「完成」時,它會使第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
所以你想要的SQL總是給出錯誤?例如'select(Select 1 union SELECT 2)X' – Cato
'RAISERROR('Fail!',16,1)' –