1. 程式人生 > >SQLServer--事務的建立

SQLServer--事務的建立

基本框架

這裡寫圖片描述

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