作者:我是小钞票 | 来源:互联网 | 2022-12-05 05:42
我有一个更新表数据的存储过程.存储过程具有可选参数和NULL默认值,如下所示:
@parameter1 datatype = NULL,
@parameter2 datatype = NULL,
@parameter3 datatype = NULL.
仅当相应参数不为NULL时,我才需要存储过程来更新列.我在考虑做以下事情:
IF @parameter1 IS NOT NULL
UPDATE Table
SET column1 = @parameter1
WHERE id = @id;
IF @parameter2 IS NOT NULL
UPDATE Table
SET column2 = @parameter2
WHERE id = @id;
IF @parameter3 IS NOT NULL
UPDATE Table
SET column3 = @parameter3
WHERE id = @id;
我不知道这个解决方案有多高效,因为有42列需要以这种方式更新.我想知道是否有更有效的解决方案.
1> Yogesh Sharm..:
怎么办?
UPDATE Table
SET column1 = coalesce(@parameter1, column1),
column2 = coalesce(@parameter2, column2),
column3 = coalesce(@parameter3, column3)
WHERE id = @id;