SQLServer用存储过程实现插入更新数据示例
程序员文章站
2023-11-27 23:50:10
实现
1)有相同的数据,直接返回(返回值:0);
2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2);
3)没有数据,进行插入数据处理(返回值:1)。...
实现
1)有相同的数据,直接返回(返回值:0);
2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2);
3)没有数据,进行插入数据处理(返回值:1)。
【创建存储过程】
create proc insert_update @id varchar(20), @name varchar(20), @telephone varchar(20), @address varchar(20), @job varchar(20), @returnvalue int output as declare @tmpname varchar(20), @tmptelephone varchar(20), @tmpjob varchar(20), @tmpaddress varchar(20) if exists(select * from dbo.demodata where id=@id) begin select @tmpname=name,@tmptelephone=telephone,@tmpaddress=address,@tmpjob=job from dbo.demodata where id=@id if ((@tmpname=@name) and (@tmptelephone=@telephone) and (@tmpaddress=@address)and (@tmpjob=@job)) begin set @returnvalue=0 --有相同的数据,直接返回值 end else begin update dbo.demodata set name=@name,telephone=@telephone,address=@address,job=@job where id=@id set @returnvalue=2 --有主键相同的数据,进行更新处理 end end else begin insert into dbo.demodata values(@id,@name,@telephone,@address,@job) set @returnvalue=1 --没有相同的数据,进行插入处理 end
【执行方式】
declare @returnvalue int exec insert_update '15','hugh15','3823345','长安街','副部长',@returnvalue output select @returnvalue
返回值0,已经存在相同的
返回值1,插入成功
返回值2,更新成功
上一篇: sql server动态存储过程按日期保存数据示例
下一篇: C#实现判断当前操作用户管理角色的方法
推荐阅读