有这样一张表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