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

Tsql 如何更新T-SQL记录并忽略空参数上的更新,tsql,stored-procedures,Tsql,Stored Procedures,是否有方法使用以下参数创建更新存储过程: @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的更改 换句话说,它不

是否有方法使用以下参数创建更新存储过程:

@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,3,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)

@乔·斯特凡内利,哎呀,我想说的是更新声明。谢谢你指出这一点!