SQL中使用事务

Begin TransAction 开始事务

rollback TransAction 提交事务

 Commit TransAction 回滚事务

 

USE pubs   

DECLARE @intErrorCode INT  

BEGIN TRAN   

UPDATE Authors     SET Phone = '415 354-9866'   WHERE au_id = '724-80-9391'  

 SELECT @intErrorCode = @@ERROR   

IF (@intErrorCode <> 0) GOTO PROBLEM   

UPDATE Publishers    SET city = 'Calcutta', country = 'India'    WHERE pub_id = '9999'   

 SELECT @intErrorCode = @@ERROR   

IF (@intErrorCode <> 0) GOTO PROBLEM   

COMMIT TRAN     

PROBLEM:   

IF (@intErrorCode <> 0) BEGIN  

PRINT 'Unexpected error occurred!'  

 ROLLBACK TRAN   

END  

在真正处理开始之前,使用BEGIN TRAN标记:下面所有的动作作为一个事务。里边包含两个update语句。如果没有出错,当执行到COMMIT TRAN所有的改变被提交到数据库,存储过程完成。如果在执行update出错,通过检测@@ERROR,跳转到PROBLEM标签,显示错误信息,回滚这期间所有的修改。
注意:确保BEGIN TRAN 和COMMIT 或 ROLLBACK成对出现

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值