我有一个SQL Server表,其中包含列ID和A到G (ID, A, B, C, D, E, F, G)。
我需要创建一个存储过程,它接受记录的ID和7个可以为空的参数。
该存储过程应该更新由传入的ID标识的记录中的列,但只更新具有非NULL的相应参数的列。
在该存储过程中有更多的逻辑。现在,它是通过对单个记录执行7次空检查和最多7次更新来完成的。有没有办法在一次更新中做到这一点?
发布于 2019-08-27 19:24:23
您可以使用coalesce()
update t
a = coalesce(@a, a),
b = coalesce(@b, b),
. . .
where id = @id;https://stackoverflow.com/questions/57673608
复制相似问题