日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時間:2023/12/13 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLServer用存储过程实现插入更新数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

實現(xiàn)

1)有同樣的數(shù)據(jù),直接返回(返回值:0)。

2)有主鍵同樣。可是數(shù)據(jù)不同的數(shù)據(jù)。進行更新處理(返回值:2);

3)沒有數(shù)據(jù),進行插入數(shù)據(jù)處理(返回值:1)。


【創(chuàng)建存儲過程】

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 --有同樣的數(shù)據(jù),直接返回值 ?
?
end ?
?
else ?
?
begin ?
?
update dbo.DemoData set Name=@Name,Telephone=@Telephone,Address=@Address,Job=@Job where id=@Id ?
?
set @returnValue=2 --有主鍵同樣的數(shù)據(jù),進行更新處理 ?
?
end ?
?
end ?
?
else ?
?
begin ?
?
insert into dbo.DemoData values(@Id,@Name,@Telephone,@Address,@Job) ?
?
set @returnValue=1 --沒有同樣的數(shù)據(jù),進行插入處理 ?
?
end?


【運行方式】

declare @returnValue int ??
exec Insert_Update '15','hugh15','3823345','長安街','副部長',@returnValue output ?
select @returnValue


返回值0,已經(jīng)存在同樣的

返回值1,插入成功

返回值2,更新成功


轉(zhuǎn)載于:https://www.cnblogs.com/ldxsuanfa/p/10053666.html

總結(jié)

以上是生活随笔為你收集整理的SQLServer用存储过程实现插入更新数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。