创建事务

开始事务 begin transaction

提交事务 commit transaction

回滚(撤销)事务 rollback transaction

一旦事务提交或回滚,则事务结束

操作步骤:

【1】gegin 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

  

猜你喜欢

转载自www.cnblogs.com/zhangxudong-cnblogs/p/10878348.html