有没有办法用以下参数创建UPDATE stored_procedure:
@param1 int = null,
@param2 int = null,
@param3 nvarchar(255) = null,
@param4 bit = null,
@id int
并使用UPDATE语句,它只更新非NULL的字段
所以,如果我执行
spUpdateProcedure @param1=255, @id=1
如果更新记录@ id = 1但它只会更改字段@ param1并忽略对其他@param2,3,4的更改。
换句话说,它不会改变@ param2,3,4
中null
的值
感谢。
答案 0 :(得分:5)
UPDATE YourTable
SET Column1 = COALESCE(@param1, Column1),
Column2 = COALESCE(@param2, Column2),
...
WHERE id = @id
答案 1 :(得分:0)
,你可以这样做
update table
set
column1 = isnull(@param1,column1),
column2 isnull(@param2,column2)