亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQLServer 存儲(chǔ)過(guò)程嵌套事務(wù)處理

系統(tǒng) 4930 0
原文: SQLServer 存儲(chǔ)過(guò)程嵌套事務(wù)處理

某個(gè)存儲(chǔ)過(guò)程可能被單獨(dú)調(diào)用,也可能由其他存儲(chǔ)過(guò)程嵌套調(diào)用,則可能會(huì)發(fā)生嵌套事務(wù)的情形。

下面是一種解決存儲(chǔ)過(guò)程嵌套調(diào)用的通用代碼,在不能確定存儲(chǔ)過(guò)程是否可能被其他存儲(chǔ)過(guò)程調(diào)用的情況下,建議每個(gè)存儲(chǔ)過(guò)程都按照這個(gè)模板建立

      
        
          create
        
        
          proc
        
        
           proc_example 
        
        
          as
        
        
          begin
        
        
          --
        
        
          聲明變量,存放當(dāng)前已開(kāi)啟的事務(wù)數(shù)
        
        
          declare
        
        
          @exist_trancount
        
        
          int
        
        
          select
        
        
          @exist_trancount
        
        
          =
        
        
          @@trancount
        
        
          if
        
        
          @exist_trancount
        
        
          >
        
        
          0
        
        
          --
        
        
          創(chuàng)建事務(wù)保存點(diǎn)
        
        
          save
        
        
          transaction
        
        
           tran_proc 
        
        
          else
        
        
          --
        
        
          開(kāi)啟新事務(wù)
        
        
          begin
        
        
          transaction
        
        
           tran_proc 
        
        
          /*
        
        
           存儲(chǔ)過(guò)程業(yè)務(wù)處理代碼 ········· 
        
        
          */
        
        
          if
        
        
          @@error
        
        
          <>
        
        
          0
        
        
          goto
        
        
           error 
        
        
          if
        
        
          @exist_trancount
        
        
          =
        
        
          0
        
        
          --
        
        
          提交事務(wù)
        
        
          commit
        
        
          tran
        
        
           tran_proc 
        
        
          return
        
        
          1
        
        
           error: 
        
        
          --
        
        
          回滾事務(wù)或者事務(wù)保存點(diǎn)
        
        
          rollback
        
        
          transaction
        
        
           tran_proc 
        
        
          return
        
        
          -
        
        
          1
        
        
          end
        
      
    

解釋?zhuān)?

1) 首先判斷當(dāng)前存儲(chǔ)過(guò)程實(shí)例執(zhí)行是否是嵌套事務(wù)調(diào)用。如果是嵌套,則存儲(chǔ)過(guò)程判斷的@@TRANCOUNT應(yīng)該大于0,此時(shí)創(chuàng)建一個(gè) 事務(wù)保存點(diǎn) ,而非開(kāi)啟新事務(wù);如果不是嵌套事務(wù),則 @@TRANCOUNT 應(yīng)該為0,此時(shí)開(kāi)啟新事務(wù)即可

2)然后,是存儲(chǔ)過(guò)程本身的業(yè)務(wù)處理代碼,每一步處理代碼需要判斷@@ERROR,如果<>0,執(zhí)行error代碼

3)最后,如果處理正確執(zhí)行,并且非嵌套調(diào)用,則提交事務(wù);如果發(fā)生錯(cuò)誤,則回滾事務(wù)或者回滾保存點(diǎn)。

?

當(dāng)然調(diào)用存儲(chǔ)過(guò)程的地方,需要判斷存儲(chǔ)過(guò)程的返回值來(lái)做相應(yīng)的處理

?

如有不對(duì)的地方,歡迎拍磚;如有其他方法,求分享,謝謝!O(∩_∩)O

?

SQLServer 存儲(chǔ)過(guò)程嵌套事務(wù)處理


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 成人欧美一区二区三区 | 久久亚洲不卡一区二区 | 日本免费不卡一区 | 黄色网一级片 | 免费精品99久久国产综合精品 | 精品国产一区二区麻豆 | 国产一区 在线视频 | 一区二区三区中文国产亚洲 | 狠狠色官网在线 | 国产精品久久久久久久久齐齐 | 成人黄性视频 | 亚洲一级毛片欧美一级说乱 | 亚洲一级片在线观看 | 亚洲视频二区 | 97影院理论片在线观看 | www.国产一区二区三区 | 毛茸茸的浓密在线视频 | 日韩免费高清一级毛片久久 | 一区二区三区视频 | 欧美性啪啪 | 欧美国产日韩精品 | 精品日产一区二区三区手机 | 99成人免费视频 | 欧美日韩在线成人免费 | 日本乱中文字幕系列在线观看 | 国产精品国产色综合色 | 中文字幕亚洲综合 | 成人深夜影院 | 国产一区二区三区四区在线观看 | 夜夜夜夜猛噜噜噜噜噜 | 92国产福利久久青青草原 | 国产美女亚洲精品久久久久久 | 天天操天天操天天 | 青草伊人久久 | 91福利国产在线观看 | 亚洲日本人成网站在线观看 | 亚洲国产成人在线 | 狠狠色噜噜综合社区 | 亚洲天堂一区二区 | 精品伊人久久久99热这里只 | 91精品国产爱久久久久久 |