• SQL事务


    如何避免这样的问题呢?有三种方法:

    1. 在事务语句最前面加上set xact_abort on

    1. set xact_abort on   
    2. begin tran   
    3. update statement 1 ...   
    4. update statement 2 ...   
    5. delete statement 3 ...   
    6. commit tran   
    7. go 

    当xact_abort 选项为on 时,SQL Server在遇到错误时会终止执行并rollback 整个事务。

    2. 在每个单独的DML语句执行后,立即判断执行状态,并做相应处理。

    1. begin tran   
    2. update statement 1 ...  
    3. if @@error <> 0   
    4. begin rollback tran   
    5. goto labend   
    6. end   
    7. delete statement 2 ...   
    8. if @@error <> 0  
    9. begin rollback tran   
    10. goto labend   
    11. end   
    12. commit tran   
    13. labend:   
    14. go 

    3. 在SQL Server 2005中,可利用 try...catch 异常处理机制。

    1. begin tran   
    2. begin try   
    3. update statement 1 ...   
    4. delete statement 2 ...   
    5. endtry   
    6. begin catch  
    7. if @@trancount > 0   
    8. rollback tran   
    9. end catch  
    10. if @@trancount > 0   
    11. commit tran  
    12. go 

    下面是个简单的存储过程,演示事务处理过程。

    1. create procedure dbo.pr_tran_inproc as begin set nocount on   
    2. begin tran  
    3. update statement 1 ...   
    4. if @@error <> 0   
    5. begin rollback tran   
    6. return -1 end   
    7. delete statement 2 ...   
    8. if @@error <> 0   
    9. begin rollback tran   
    10. return -1   
    11. end commit tran   
    12. return 0   
    13. end   
    14. go  

    关于SQL Server数据库中在存储过程中编写正确的事务处理代码的方法就介绍到这里了,希望本次的介绍能够对您有所帮助。

  • 相关阅读:
    Objective
    Objective
    安排
    ios 类的内部结构
    什么是静态语言,什么是动态语言?
    ios 中的 GCD
    IOS 中的JS
    菱形开合的实现 IOS
    典题
    c++连接数据库 在vc6.0
  • 原文地址:https://www.cnblogs.com/mingdep/p/2501229.html
Copyright © 2020-2023  润新知