我创建了一个步骤(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
答案 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。