如何在SQL Server中更新记录,但仅使用参数中的非空值?
我有一个SQL Server表,其中包含列如何在SQL Server中更新记录,但仅使用参数中的非空值?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个SQL Server表,其中包含列ID和a到G(ID、a、B、C、D、E、F、G) 我需要创建一个存储过程,它接受记录的ID和7个可以为NULL的参数 该存储过程应更新由传入的ID标识的记录中的列,但仅更新具有不为NULL的相应参数的列 在那个存储过程中有更多的逻辑。现在它是通过对单个记录执行7次空检查和最多7次更新来完成的。有什么方法可以在一次更新中完成吗?您可以使用coalesce(): update t a = coalesce(@a, a), b = coales
ID
和a
到G
(ID、a、B、C、D、E、F、G
)
我需要创建一个存储过程,它接受记录的ID和7个可以为NULL的参数
该存储过程应更新由传入的ID标识的记录中的列,但仅更新具有不为NULL的相应参数的列
在那个存储过程中有更多的逻辑。现在它是通过对单个记录执行7次空检查和最多7次更新来完成的。有什么方法可以在一次更新中完成吗?您可以使用coalesce()
:
update t
a = coalesce(@a, a),
b = coalesce(@b, b),
. . .
where id = @id;