如何更新T-SQL记录并忽略NULL的参数上的UPDATE

问题描述

|| 有没有一种方法可以使用以下参数创建UPDATEstored_procedure:
@param1 int = null,@param2 int = null,@param3 nvarchar(255) = null,@param4 bit = null,@id int
并使用UPDATE语句,它将仅更新非NULL的字段 所以如果我执行
spUpdateProcedure @param1=255,@id=1
if将更新记录@ id = 1,但只会更改字段@ param1,而忽略对其他@ param2,3,4的更改。 换句话说,它不会更改@ param2,4中
null
的值 谢谢。     

解决方法

        
UPDATE YourTable
    SET Column1 = COALESCE(@param1,Column1),Column2 = COALESCE(@param2,Column2),...
    WHERE id = @id
    ,        在您的编辑语句上,您可以执行此操作
update table
set
column1 = isnull(@param1,column1),column2  isnull(@param2,column2)