SQLServer用存储过程实现插入更新数据示例

实现

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,更新成功

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐