(4.19)sql server中的事務模式(隱式事務,顯式事務,自動提交事務)


(4.19)sql server中的事務模式(隱式事務,顯式事務,自動提交事務)

 

1.概念:隱式事務,顯式事務,自動提交事務

2.操作:如何設置事務模式

3.存儲過程中的事務 XACT_ABORT  

1.概念

  【1】隱式事務:即每個窗口系統會自動加上begin tran,但是不會自動提交,需要手動使用 commit 提交。

  【2】顯示事務:需要begin tran             commit tran/ rollback tran   配合使用

  【3】自動提交事務:每一個DML、DDL都是獨立的事務,並且一旦執行就自動提交/錯誤也會自動回滾。

 

事務的基本控制語句


BEGIN TRANSACTION 表示本地事務的開始
BEGIN DISTRIBUTED TRANSACTION表示分布式事務起始
COMMIT TRANSACTION表示事務的提交
ROLLBACK TRANSACTION表示事務的回滾
COMMIT事務的提交 與COMMIT TRANSACTION功能相同
ROLLBACK 事務的回滾與ROLLBACK TRANSACTION功能相同
SAVE TRANSACTION設置事務保存點

 

2.操作

  【1】隱式事務

    SET IMPLICIT_TRANSACTIONS ON 語句啟動隱性事務模式
    SET IMPLICIT_TRANSACTIONS OFF 語句關閉隱性事務模式

  【2】顯式事務

    通過發出 BEGIN TRANSACTION 語句顯式啟動事務。

  【3】自動提交事務,默認為此項,無需設置;

    只要隱式事務和顯式事務沒有開啟,就是自動提交事務。

  SSMS操作,右擊實例-》屬性-》連接

    

 

3.存儲過程中的事務 XACT_ABORT 

      SET XACT_ABORT ON是設置事務回滾的!  默認為OFF

      當為ON時,如果你存儲中的某個地方出了問題,整個事務中的語句都會回滾;且不會再執行該事務內的所有語句了;
      為OFF時,只回滾錯誤的地方。事務內剩余的語句都會執行;
      舉例:一個過程里有10行dml,執行到第5行出錯。
        【1】如果為on,則直接回滾整個事務,並且報錯
        【2】如果為off,則只會回滾出錯的第5行,其余1-4,6-10可以正常執行並且提交保存;
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM