当前位置: 代码迷 >> Sql Server >> 存储过程中.对数据进行修改.如果有输入项就修改,没有就保持原来的.应该如何写
  详细解决方案

存储过程中.对数据进行修改.如果有输入项就修改,没有就保持原来的.应该如何写

热度:81   发布时间:2016-04-24 09:20:10.0
存储过程中.对数据进行修改.如果有输入项就修改,没有就保持原来的.应该怎么写?
有这样一张表table_a里
id    num    name    color
1      99       玫瑰      红
2      76      月季      粉红
想写一个存储过程,对数据进行修改.如果有输入项就修改,没有就保持原来的.
比如:
1.输入  null   50      山茶花    紫
   结果  id    num    name    color
            1      50      山茶花    紫
            2      50      山茶花    紫
2.输入  null  null     茉莉花    白
 结果    id    num    name    color
            1      99      茉莉花    白
            2      76     茉莉花    白
------解决思路----------------------
CREATE PROCEDURE PROC1
@ID INT,@NUM INT,@NAME VARCHAR(10),@COLOR VARCHAR(10)
AS
BEGIN
IF @ID IS NOT NULL
OR @NUM IS NOT NULL
OR @NAME IS NOT NULL
OR @COLOR IS NOT NULL--加个判断以免全部为NULL,也全表更新
UPDATE table_a
SET id=ISNULL(@ID,id)
,num=ISNULL(@NUM,num)
,name=ISNULL(@NAME,name)
,color=ISNULL(@COLOR,color)
END
GO
EXEC PROC1 null,null,'茉莉花','白'

SELECT * FROM table_a
  相关解决方案