开始事务 begin transaction
提交事务 commit transaction
回滚(撤销)事务 rollback transaction
一旦事务提交或回滚,则事务结束
操作步骤:
【1】begin tran
【2】声明变量用于累加错误号,错误号使用全局变量@@error
【3】为【2】中的声明的变量赋初值为0
【4】增,删,改T-SQL语句
【5】set @变量=@变量 + @@error --累计错误号
重复【4】,【5】直到所有的业务完成
【6】使用if。。。else判断累加的错误号是否>0,大于0就回滚,否则提交
例子:
use E_Market
go
set nocount on --不显示受影响的行数
--查看转账之前的余额
print '查看转账之前的余额'
select * from bank
go
--开始事务(从此处开始,后续的T-SQL语句是一个整体)
--【1】开始事务
begin tran
--[2]定义变量,用于累计事务执行过程中的错误】、
declare @error int
--[3]给[2]中声明的变量赋值
set @error=0
--【4】开始执行转账,张小虎的账号中减500
update bank set currentMoney=currentMoney -300 where customerName='张小虎'
--[5]累加错误
set @error=@error + @@ERROR
--重复执行,[4],[5]
--王小丽账号加500
update bank set currentMoney=currentMoney + 300 where customerName='王小丽'
set @error=@error + @@ERROR
print '查看转账过程的余额'
select * from bank
--[6]使用if...else去判断累加的错误号,确定事务是提交还是回滚
if (@error >0)
begin
print'交易失败!,回滚事务'
rollback tran --回滚事务
end
else
begin
print '交易成功,提交事务,写入硬盘!'
commit tran --提交事务
end
--查看转账后的余额
print '查看转账后的余额'
select * from bank
go