开始事务  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