溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SQLServer中怎么利用存儲(chǔ)過(guò)程插入更新數(shù)據(jù)

發(fā)布時(shí)間:2021-07-22 16:13:20 來(lái)源:億速云 閱讀:167 作者:Leah 欄目:數(shù)據(jù)庫(kù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)SQLServer中怎么利用存儲(chǔ)過(guò)程插入更新數(shù)據(jù),文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

實(shí)現(xiàn)

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

2)有主鍵相同,但是數(shù)據(jù)不同的數(shù)據(jù),進(jìn)行更新處理(返回值:2);

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

【創(chuàng)建存儲(chǔ)過(guò)程】

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ù),進(jìn)行更新處理 end end else begin insert into dbo.DemoData values(@Id,@Name,@Telephone,@Address,@Job) set @returnValue=1 --沒(méi)有相同的數(shù)據(jù),進(jìn)行插入處理 end

【執(zhí)行方式】

declare @returnValue int exec Insert_Update '15','hugh25','3823345','長(zhǎng)安街','副部長(zhǎng)',@returnValue output select @returnValue

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

返回值1,插入成功

返回值2,更新成功

上述就是小編為大家分享的SQLServer中怎么利用存儲(chǔ)過(guò)程插入更新數(shù)據(jù)了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI