Sql server SQL Server中基于值的递归更新

Sql server SQL Server中基于值的递归更新,sql-server,tsql,stored-procedures,Sql Server,Tsql,Stored Procedures,我有一个更新表的存储过程。使用日常作业调用此存储过程 存储过程的逻辑如下所示: 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%]'

我有一个更新表的存储过程。使用日常作业调用此存储过程

存储过程的逻辑如下所示:

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%]
jobcodes可以替换
[%0-9%]
jobcodes)。因此,如果上述任何更新块失败,存储过程将导致错误的输出。我通过在每次更新之前添加此代码来处理此问题

UPDATE Basetable 
SET amount = NULL
除此之外,如何处理上述情况


感谢您的帮助。

您可以在下面这样的语句中使用case

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

您可以尝试使用下面的case语句

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