T-SQL 事务

 1 use StudentManager
 2 go
 3 declare @errorSum int --定义变量,用于累计事务执行过程中的错误
 4 set @errorSum=0        --初始化为0,即无错误
 5 begin transaction
 6    begin        
 7         update CardAccount set CurrentMoney=CurrentMoney-1000
 8                     where StudentId=100001
 9        set @errorSum=@errorSum+@@error --累计是否有错误        
10         update CardAccount set CurrentMoney=CurrentMoney+1000
11                     where StudentId=100002
12       set @errorSum=@errorSum+@@error --累计是否有错误
13       if(@errorSum>0)
14             rollback transaction
15       else 
16           commit transaction
17  end
18 go
19 --查询余额
20 select Students.StudentId,StudentName,CurrentMoney from Students
21 inner join CardAccount on Students.StudentId=CardAccount.StudentId

该事务运用了全局变量@@error 来记录执行语句的错误,检查如果有错误,那么就回滚,没有错误就提交

posted on 2018-12-02 11:02  雯烈  阅读(283)  评论(0编辑  收藏  举报