例:事务在银行转帐过程的中的简单应用,将张三的账户(14200101033014122)转1000到李四的账户(14200101000014243)上。
USE stuDB --使用数据库 GO SET NOCOUNT ON --不显示受影响的行数信息 print ‘查看转帐事务前的余额‘ SELECT * FROM bank GO BEGIN TRANSACTION --开始事务(指定事务从此处开始,后续的T-SQL 语句是一个整体 DECLARE @errorSum INT --定义变量,用于累计事务执行过程中的错误 SET @errorSum=0 --初始化为0,即无错误 UPDATE bank SET currentMoney=currentMoney-1000 WHERE customerNumber=‘14200101033014122‘ --转出:张三的账户少了 1000元, SET @errorSum=@errorSum+@@error --累计是否有错误 UPDATE bank SET currentMoney=currentMoney+1000 WHERE customerNumber=‘14200101000014243‘ --转入:李四的账户多了1000元 SET @errorSum=@errorSum+@@error --累计是否有错误 print ‘查看转帐事务过程中的余额‘ SELECT * FROM bank IF @errorSum<>0 --根据是否有错误,确定事务是提交还是撤销 --如果有错误 BEGIN print ‘交易失败,回滚事务‘ ROLLBACK TRANSACTION END ELSE BEGIN print ‘交易成功,提交事务,写入硬盘,永久的保存‘ COMMIT TRANSACTION END GO print ‘查看转帐事务后的余额‘ SELECT * FROM bank
时间: 2024-10-05 04:39:51