SQL Server代理作业自定义错误消息

时间:2016-11-30 10:54:34

标签: sql-server error-handling

我创建了一个步骤(Transact-SQL脚本(T-SQL)),其中包含此查询:

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

此查询有效,但我认为这是阻止SQL代理作业到错误消息的不好方法:"遇到零除错误。" 什么是"正确"在这种情况下停止SQL代理作业的方法,如果有错误? 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

1 个答案:

答案 0 :(得分:0)

也许就像....

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

或者可能将其放入存储过程并从SQL代理作业调用该proc。