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 来记录执行语句的错误,检查如果有错误,那么就回滚,没有错误就提交