新闻动态
新闻动态
NEWS INFORMATION

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

发布日期:2021-12-26 17:23 | 文章来源:站长之家

实现

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

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部