我有一个SQL服务器表,其中有两列我想根据发送到存储过程的标志以及新值更新其值,如:
UPDATE
table_Name
SET
CASE
WHEN @flag = '1' THEN column_A += @new_value
WHEN @flag = '0' THEN column_B += @new_value
END AS Total
WHERE
ID = @ID
正确的SQL服务器代码是什么?
答案 0 :(得分:0)
我认为M.Ali的评论是正确的,所以我根据他的建议构建了这个评论。 我还假设状态字段已被批准'或者'拒绝'正如你所说,基于它是否填充。如果状态字段中有任何其他条件,那么您必须在声明
的位置添加这些条件BEGIN TRANSACTION
Update Payment
set post_date = new_postdate_value
account_num = new_account_num_value
pay_am = new_pay_am_value
pay_type = new_pay_type_value
authoriz = new_authoriz_value
where status is not null
UPDATE Payment
SET account_num = new_account_num_value
WHERE status is null
COMMIT TRANSACTION