什麼是資料庫事務
資料庫管理系統執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。
意思就是一連串的資料庫操作,即一串增刪查改的集合。
資料庫事務做了什麼
它把資料庫從乙個一致的狀態轉換到另乙個一致的狀態,比如資料庫操作前是乙個點,資料庫操作後是乙個點,
我們只管這兩個點的狀態,而兩點之間的連線上的狀態我們不管因為他們可能對我們想要的結果產生影響。
**
begintransaction
--開始事務
update tregister set balance = balance +
199where id =
1update tregister set balance = balance -
199where id =6--
因違法check(balance>0)約束而報錯
commit
transaction --提交事務
然而,sql server 在失敗時並不是都可以自動回滾事務(預設約束和鎖超時會讓事務一直開啟)。所以,我們需要:
set xact_abort on|off
--設定只要有錯誤(無論級別)就回滾事務
在實際開發中,我們通常採用try...catch的方式來處理:
begintransaction
begin
try
update tregister set balance = balance +
150where id =
1update tregister set balance = balance -
150where id =
6commit
transaction
endtry
begin
catch
if@@trancount
>
0rollback
; throw;
end catch
try...catch(異常捕獲):
顯式事務
宣告了 begin transaction 的事務就是顯式事務。事務從 begin transaction 開始,至 commit 或 rollback 結束。
隱式事務
set implicit_transactions on|off
--sql server 預設是off的
自動提交
未宣告 begin transaction 的單個sql語句,自動的受事務控制。
比如:update...set column_1 = x, column_2 = y,不可能只更改了column_1,沒更改column_2
事務特性:acid
原子性(atomicity):不可再分。
一致性(consistency):要完成都完成,要不完成都不完成。
隔離性(isolation):正在執行的事務不能被其他事務干擾。
永續性(durablity):一旦完成,改變就是永久性的。
文章**自:快速開發平台– 雲微平台
資料庫事務
事件是訪問並可能更新各種資料項的乙個程式執行單元。事件由事務開始與事務結束之間執行的全體操作組成。為了保證資料完整性,資料庫系統需要維護事務的以下性質 原子性 atomicity 事務中的操作要麼全部成功,要麼全部失敗。一致性 consistency 事務執行前後要保持資料庫的一致性。隔離性 iso...
資料庫 事務
資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式更加可靠。乙個邏輯工作單元要成...
資料庫事務
這段時間面試,由於基礎不是特別好,遇到一些要筆試的公司。就會表示出來 今天有人問我,資料庫事務 是什麼。我只感覺十分熟悉。但是又說不出所以然。回來找了一下,現在整理記錄 1 定義 資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務...