例:
……关键语句讲解………
BEGIN
TRANSACTION
/*--定义变量,用于累计事务执行过程中的错误--*/
DECLARE @errorSum INT
SET
@errorSum=0 --初始化为0,即无错误
/*--转账:张三的账户少1000元,李四的账户多1000元*/
UPDATEbankSET
currentMoney=currentMoney-1000
WHERE customerName=‘张三‘
SET
@[email protected][email protected]@error
UPDATE bank SET
currentMoney=currentMoney+1000
WHERE customerName=‘李四‘
SET
@[email protected][email protected]@error --累计是否有错误
IF @errorSum<>0 --如果有错误
BEGIN
print
‘交易失败,回滚事务‘
ROLLBACK TRANSACTION
END?
ELSE
BEGIN
print
‘交易成功,提交事务,写入硬盘,永久的保存‘
COMMIT TRANSACTION
END
GO
print
‘查看转账事务后的余额‘
SELECT * FROM bank?
GO
案例------事务
时间: 2024-10-13 16:20:17