程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> 淺析SQL Server中包括事務的存儲進程

淺析SQL Server中包括事務的存儲進程

編輯:MSSQL

淺析SQL Server中包括事務的存儲進程。本站提示廣大學習愛好者:(淺析SQL Server中包括事務的存儲進程)文章只能為提供參考,不一定能成為您想要的結果。以下是淺析SQL Server中包括事務的存儲進程正文


先來看一個概念:

  數據庫事務(Database Transaction) ,是指作為單個邏輯任務單位履行的一系列操作,要末完全地履行,要末完整地不履行。那末在存儲進程裡添加事務,則可以包管該事務裡的一切sql代碼要末完整履行要末完整不履行。

  舉個簡略的帶事務的存儲進程:

Begin
    Set NOCOUNT ON; --不前往影響行數
    Set XACT_ABORT ON; --應用存儲進程履行事務須要開啟XACT_ABORT參數(默許為OFF)

      delete from table1 where name='' --刪除數據sql1
    begin tran tran1 --開端一個事務tran1
      delete from table1 where name='' --刪除數據sql2
    save tran tran2 --保留一個事務點tran2
      update table2 set name='' where id='' --修正數據sql3

      if @@error<>0 --斷定修正數據有無毛病(@@error表現前往與@@ERROR 比來的語句(即sql3)的非零的毛病碼,沒有毛病則前往0)

        begin
          rollback tran tran2 --回滾事務到tran2的復原點
          commit tran tran1 --提交事務tran1
        end
      else --沒有失足則提交事務tran1
        commit tran tran1 --提交事務tran1
  End

  假如sql3履行掉敗,則會回滾到事務tran2的創立處(相當於出來sql1和sql2履行外都未履行)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved