问题描述
||
有没有一种方法可以使用以下参数创建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)