淺析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履行外都未履行)。