SQLServer--事務的建立
阿新 • • 發佈:2019-01-02
基本框架
use StudentManager
go
--事務基本框架
declare @errorSum int --定義變數,用於累計事務執行過程中的錯誤
set @errorSum =0 --初始化為0,即無錯誤
begin transaction
begin
if(@errorSum>0)
rollback transaction
else
commit transaction --提交回滾事務
end
go
事務的使用
A賬戶轉到B賬戶,但A賬戶設定了約束餘額不少於1元
錯誤依然存在:
但結果依然正確:
可以清楚的看到發生錯誤,但是由於事務回滾,對最後的結果沒有任何影響。
use StudentManager
go
--事務基本框架
declare @errorSum int --定義變數,用於累計事務執行過程中的錯誤
set @errorSum =0 --初始化為0,即無錯誤
begin transaction
begin
update CardAccount set CurrentMoney=CurrentMoney-1000
where StudentId=100001
set @[email protected] [email protected]@ERROR
update CardAccount set CurrentMoney=CurrentMoney+1000
where StudentId = 100002
set @errorSum = @[email protected]@ERROR
if(@errorSum>0)
rollback transaction
else
commit transaction --提交回滾事務
end
go
select Students.StudentId,StudentName,CurrentMoney from Students
inner join CardAccount on Students.StudentId=CardAccount.StudentId
--update CardAccount set CurrentMoney=CurrentMoney+900
-- where StudentId=100001
--select * from CardAccount