我有一个更新表的存储过程。使用日常作业调用此存储过程。
存储过程中的逻辑如下:
Update Basetable
Set amount = Isnull(actualamount, 0)
From Acutaltable
Where jobcode Like '[%A-Z%]'
Update Basetable
Set amount = amount + Isnull(actualamount, 0)
From Acutaltable
Where jobcode Like '[%0-9%]'
jobcode
列每天使用动态值进行更新(即:[%A-Z%]
作业代码可以替换[%0-9%]
作业代码)。因此,如果上述任何更新块失败,则存储过程将导致错误的输出。我通过在每次更新之前添加这段代码来处理这个问题。
UPDATE Basetable
SET amount = NULL
除此之外,如何处理上述情况?
谢谢你的帮助。
发布于 2016-03-15 07:17:42
您可以在下面这样的语句中使用大小写,
UPDATE Basetable
SET amount = CASE
WHEN jobcode LIKE '[%A-Z%]'
THEN ISNULL(actualamount, 0)
WHEN jobcode LIKE '[%0-9%]'
THEN amount + Isnull(actualamount, 0)
ELSE NULL
END
FROM Acutaltable
发布于 2016-03-15 07:21:17
UPDATE Basetable
SET amount = (CASE WHEN jobcode LIKE '[%A-Z%]' THEN 0
WHEN jobcode LIKE '[%0-9%]'THEN amount END) + Isnull(actualamount,0)
FROM Acutaltable
https://stackoverflow.com/questions/36004625
复制相似问题