SQLServer存儲過程中事務(wù)的使用方法
更新時間:2015年12月13日 14:53:02 作者:iceKnight
這篇文章主要介紹了SQLServer存儲過程中事務(wù)的使用方法,簡短的代碼帶大家更好的學(xué)習(xí)使用SQLServer存儲過程中事務(wù),感興趣的小伙伴們可以參考一下
本文為大家分享了SQLServer存儲過程中事務(wù)的使用方法,具體代碼如下
create proc usp_Stock
@GoodsId int,
@Number int,
@StockPrice money,
@SupplierId int,
@EmpId int,
@StockUnit varchar(50),
@StockDate datetime,
@TotalMoney money ,
@ActMoney money ,
@baseId int,
@Description nvarchar(255)
as
declare @error int =0 --事務(wù)中操作的錯誤記錄
--開啟事務(wù)
begin transaction
--實現(xiàn)進(jìn)貨信息的添加
insert into StockInfo values(@GoodsId, @Number, @StockPrice, @SupplierId, @EmpId, @StockUnit, @StockDate, @TotalMoney, @ActMoney,DEFAULT,@Description, @baseId)
set @error+=@@ERROR --記錄有可能產(chǎn)生的錯誤號
--獲取當(dāng)前進(jìn)貨信息的標(biāo)識列
--判斷當(dāng)前商品有沒有進(jìn)貨記錄
if exists (select * from dbo.InventoryInfo where goodid=@GoodsId) --說明記錄存在,直接修改庫存數(shù)量
begin
update dbo.InventoryInfo set GNumber=GNumber+@Number,TotalMoney+=@TotalMoney where goodid=@GoodsId
set @error+=@@ERROR --記錄有可能產(chǎn)生的錯誤號
end
else --這個商品從來沒有過進(jìn)貨記錄,那么就應(yīng)該添加新的存在信息
begin
declare @GWarningNum int --此商品的預(yù)警數(shù)量
--獲取預(yù)警數(shù)量
set @GWarningNum=(select WaringNum from dbo.GoodsInfo where GId=@GoodsId)
insert into dbo.InventoryInfo values(@GoodsId,@Number,@baseId,@GWarningNum,@TotalMoney,'第一次進(jìn)貨',default)
set @error+=@@ERROR --記錄有可能產(chǎn)生的錯誤號
end
--判斷事務(wù)的提交或者回滾
if(@error<>0)
begin
rollback transaction
return -1 --設(shè)置操作結(jié)果錯誤標(biāo)識
end
else
begin
commit transaction
return 1 --操作成功的標(biāo)識
end
go
希望本文所述對大家學(xué)習(xí)數(shù)據(jù)庫操作有所幫助。
相關(guān)文章
學(xué)會sql數(shù)據(jù)庫關(guān)系圖(Petshop)
花了這么多時間最終還是回到了數(shù)據(jù)庫,但是數(shù)據(jù)庫中一張一張的表格找不到腳本,也不是自己設(shè)計的數(shù)據(jù)庫,完全沒有一點(diǎn)頭緒,后來突然想起來sql有個數(shù)據(jù)庫關(guān)系圖,可以很快的適合數(shù)據(jù)庫程序員很快的掌握數(shù)據(jù)庫表之間的關(guān)系2012-08-08
sqlserver 多表關(guān)聯(lián)時在where語句中慎用trim()方法
最近做的一個項目由于前期數(shù)據(jù)庫設(shè)計不合理,導(dǎo)致多表關(guān)聯(lián)的主外鍵長度設(shè)計不一致,以致過長主外鍵中過長的字段在填入相同字段時,多余部分被填入空字符。迫于無奈,就在多表關(guān)聯(lián)的where語句中使用了trim()方法。2009-09-09
SQL Server 索引結(jié)構(gòu)及其使用(二) 改善SQL語句
很多人不知道SQL語句在SQL SERVER中是如何執(zhí)行的,他們擔(dān)心自己所寫的SQL語句會被SQL SERVER誤解。2009-04-04
SQL?SERVER自動備份以及自動清除設(shè)置圖文教程
作為一名DBA、運(yùn)維人員、實施人員亦或是測試人員必須要學(xué)會如何備份以及清理備份文件,自動清理備份文件,這篇文章主要給大家介紹了關(guān)于SQL?SERVER自動備份以及自動清除設(shè)置的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
新手SqlServer數(shù)據(jù)庫dba需要注意的一些小細(xì)節(jié)
這篇文章主要介紹了新手SqlServer數(shù)據(jù)庫dba需要注意的一些小細(xì)節(jié),本文講解了15個小細(xì)節(jié)、小技巧及需要注意的地方,需要的朋友可以參考下2015-02-02
SQL?Server新特性SequenceNumber用法介紹
這篇文章介紹了SQL?Server新特性SequenceNumber的用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02

