亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • SQLServer在存儲過程中編寫事務處理代碼的方法有哪些

SQLServer在存儲過程中編寫事務處理代碼的方法有哪些

發布時間:2021-08-18 11:37:08 來源:億速云 閱讀:204 作者:chen 欄目:數據庫

這篇文章主要介紹“SQLServer在存儲過程中編寫事務處理代碼的方法有哪些”,在日常操作中,相信很多人在SQLServer在存儲過程中編寫事務處理代碼的方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”SQLServer在存儲過程中編寫事務處理代碼的方法有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

  在編寫SQLServer事務相關的存儲過程代碼時,經常看到下面這樣的寫法:

  begintranupdatestatement1...updatestatement2...deletestatement3...committran

  這樣編寫的SQL存在很大隱患。請看下面的例子:

  createtabledemo(idintnotnull)gobegintraninsertintodemovalues(null)insertintodemovalues(2)committrango

  執行時會出現一個違反notnull約束的錯誤信息,但隨后又提示(1row(s)affected)。我們執行select*fromdemo后發現insertintodemovalues(2)卻執行成功了。這是什么原因呢原來SQLServer在發生runtime錯誤時,默認會rollback引起錯誤的語句,而繼續執行后續語句。

  SQLServer在存儲過程中編寫事務處理代碼有哪些方法

  如何避免這樣的問題呢?有三種方法:

  1.在事務語句最前面加上setxact_aborton

  setxact_abortonbegintranupdatestatement1...updatestatement2...deletestatement3...committrango

  當xact_abort選項為on時,SQLServer在遇到錯誤時會終止執行并rollback整個事務。

  2.在每個單獨的DML語句執行后,立即判斷執行狀態,并做相應處理。

  begintranupdatestatement1...if@@error<>0beginrollbacktrangotolabendenddeletestatement2...if@@error<>0beginrollbacktrangotolabendendcommittranlabend:go

  3.在SQLServer2005中,可利用try...catch異常處理機制。

  begintranbegintryupdatestatement1...deletestatement2...endtrybegincatchif@@trancount>0rollbacktranendcatchif@@trancount>0committrango

  下面是個簡單的存儲過程,演示事務處理過程。

  createproceduredbo.pr_tran_inprocasbeginsetnocountonbegintranupdatestatement1...if@@error<>0beginrollbacktranreturn-1enddeletestatement2...if@@error<>0beginrollbacktranreturn-1endcommittranreturn0endgo

到此,關于“SQLServer在存儲過程中編寫事務處理代碼的方法有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武乡县| 青田县| 香格里拉县| 湘阴县| 广西| 榕江县| 阳春市| 曲阜市| 会泽县| 黄梅县| 温州市| 安康市| 资溪县| 琼中| 敖汉旗| 阿拉尔市| 商丘市| 黎平县| 句容市| 乐山市| 漳州市| 凯里市| 泾源县| 湟中县| 富锦市| 会同县| 甘洛县| 巧家县| 全州县| 凤冈县| 旬阳县| 资兴市| 龙门县| 阿鲁科尔沁旗| 永顺县| 始兴县| 牡丹江市| 侯马市| 陕西省| 萍乡市| 江华|