zoukankan      html  css  js  c++  java
  • SQL Server 事务及回滚事务

    第一种:

    declare   @iErrorCount   int 
    set @iErrorCount = 0
    begin tran Tran1
       
    insert into t1(Id, c1) values(1,'1')
        
    set @iErrorCount=@iErrorCount+@@error

       
    insert into t1(Id, c1) values('XX2','2')
        
    set @iErrorCount=@iErrorCount+@@error

    if @iErrorCount=0 
    begin   
        
    COMMIT TRAN Tran1  --执行事务
    end 
    else   
    begin   
        
    ROLLBACK TRAN Tran1  --回滚事务
    end


    第二种:

    Begin Try
        
    Begin Tran Tran1
            
    insert into t1(Id, c1) values(1,'1')
            
    insert into t1(Id, c1) values('XX2','2')  --此句产生错误
        COMMIT TRAN Tran1
    END Try
    Begin Catch 
        
    raiserror 50005N'出错了' 
        
    ROLLBACK TRAN Tran1     ---出错后调用回滚
    END Catch 


    第三种:

    SET XACT_ABORT ON ----语句产生运行时错误,则整个事务将终止并回滚。 
    Begin Tran
        
    INSERT INTO t1(Id, c1) VALUES(1,'1')
        
    INSERT INTO t1(Id, c1) VALUES('XX2','2'--此句产生错误时,就会回滚整个事务
    Commit Tran


  • 相关阅读:
    正则化--Lambda
    uwsgi配置cheaper模式进行自动弹性
    采集容器内存并写到excel
    通过进程id找到进程对应的容器并统计每个进程的内存占用写到excel里
    基于celery的任务管理
    基于Redis做内存管理
    uWSGI
    nginx
    服务发现
    绑核与巨页
  • 原文地址:https://www.cnblogs.com/delphinet/p/1801424.html
Copyright © 2011-2022 走看看