2016-11-30 117 views
2

我創建了一個步驟(Transact-SQL腳本(T-SQL)),其中包含此查詢自定義錯誤消息:SQL Server代理作業

SELECT 
    CASE WHEN SalarySum >= 10000 THEN 1 
    ELSE 1/0 END AS result 
FROM dbo.salary 

這個查詢工作,但我認爲這是不錯的方法將SQL代理作業停止爲錯誤消息:「遇到零分錯誤。」 在這種情況下,如果出現錯誤,什麼是「正確」的方式來停止SQL Agent作業? ELSE ...

新的例子:

WITH TEST_CTE 
AS 
(
SELECT * FROM dbo.salary 
UNION ALL 
SELECT * FROM dbo.salary2 
) 
SELECT 
    CASE WHEN SalarySum >= 10000 THEN 1 
    ELSE 1/0 END AS result 
FROM TEST_CTE 

回答

0

也許像....

IF EXISTS (SELECT 1 
      FROM dbo.salary 
      WHERE SalarySum < 10000) 
BEGIN 
    RAISERROR('Salary Sum is less than 10000' , 16 ,1) 
END 

或者,也許把這個變成一個存儲過程,並呼籲從SQL代理作業PROC 。

+0

謝謝!還有一個問題:如果我使用CTE,那怎麼辦?我添加了新的示例代碼。 – 3volution