开始事务 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就回滚,否则提交。
SET NOCOUNT ON --不显示受影响的行数
PRINT '查看转账之前的余额'
SELECT * FROM bank
GO
--开始事务(从此处开始,后续的T-SQL语句是一个整体)
--[1]开始事务
BEGIN TRANSACTION
--[2]定义变量,用于累计事务执行过程中的错误
DECLARE @error=0
--[3]给【2】中声明的变量赋值
SET @errot=0
--[4]开始转账,张小虎的账户中减500
UPDATE bank SET currentMoney=currentMoney-500 WHERE customerName='张小虎'
--[5]累加错误
SET @erroe=@error+@@ERROR
--重复执行【4】、【5】
--王小丽账户加500
UPDATE bank SET currentMoney=currentMoney+500 WHERE customerName='王小利'
--重复执行【5】
SET @erroe=@error+@@ERROR
PRINT '查看转账过程中的余额'
SELECT * FROM bank
--[6]使用IF …… ELSE 去判断累加的错误号,确定事务是提交还是回滚(撤消)
IF(@erroe>0)
BEGIN
PRINT '交易失败!回滚事务'
ROLLBACK TRANSACTION --回滚事务
END
ELSE
BEGIN
RPINT '交易成功,提交事务,写入硬盘!'
COMMIT TRANSACTION --提交事务
END
--查看转账事务后的余额
SELECT * FROM bank
GO
转载于:https://blog.51cto.com/xingcheng/1744144