sql server 2005事務持久性

來源:互聯網
上載者:User

原子性:事務必須是原子工作單元;對於其資料修改,要麼全都執行,要麼全都不執行。
一致性:事務完成時,必須使所有的資料都保持一致狀態。
隔離性:由並發事務所作的修改必須與任何其他並發事務所作的修改隔離。
持久性:事務完成之後,它對於系統的影響是永久性的。該修改即使出現系統故障也將一直保持。

下面用簡單的樣本(Northwind資料庫)來說明這一點。
原子性:
正常情況下是先刪除訂單詳細表,再刪除訂單資訊,下面倒過來為了示範事務的原子性,生產中這麼寫就是屬於邏輯錯誤。

 代碼如下 複製代碼
USE Northwind;
GO
BEGIN TRAN;
    DELETE FROM dbo.Orders WHERE OrderID = 10249;           
    DELETE FROM dbo."Order Details" WHERE OrderID = 10249;
COMMIT TRAN;
GO

執行結果:
表Orders因為違反參考完整性,刪除操作失敗, 表Order Details成功刪除2行.從這個例子來看第一條T-SQL語句執行失敗而第二條T-SQL卻執行成功,這不明顯證明事務不具有原子性。別急接

著往下看,因為BEGIN TRAN與END TRAN之間的語句為一個事務,要麼操作全部成功,要麼操作全部復原,其實導致這個事務沒有復原的原因是會話的XACT_ABORT選項預設為OFF,產生執行階段錯誤

時只復原產生錯誤的T-SQL語句,事務會繼續進行處理,如果錯誤嚴重也可能復原整個事務。所以對於大多數時候需要顯示將XACT_ABORT選項設定為ON,以便產生執行階段錯誤時復原事務。
運行以下T-SQL

 代碼如下 複製代碼
SET XACT_ABORT ON;
BEGIN TRAN;
    DELETE FROM dbo.Orders WHERE OrderID = 10250;           
    DELETE FROM dbo."Order Details" WHERE OrderID = 10250;
COMMIT TRAN;
GO

執行結果:Orders,Order Details表刪除失敗,因為刪除Orders表資料出現錯誤,所以沒有繼續執行第二條T-SQL就進行交易回復了,由此可以證明事務具備原子性。

一致性:
指相關的所有規則都必須應用於事務的修改,以保證事務的完整性,如使用者自訂完整性(商務邏輯)以及資料庫引擎提供的資料完整性(如實體完整性,值域完整性,參考完整性,NULL,DEFAULT)。也可以理解為事務的操作必須遵守資料庫現有的規則。

隔離性:隔離性主要說明事務之間不能相互影響,(主要是依靠鎖,資料列版本設定實現)。
新開啟2個查詢時段:
在第1個視窗輸入下列T-SQL並且執行

 代碼如下 複製代碼
BEGIN TRAN;
UPDATE dbo.Products SET ProductName = N'IPHONE4' WHERE ProductID = 1;
GO

在第2個視窗輸入下列T-SQL並且執行

 代碼如下 複製代碼
SELECT * FROM dbo.Products;
GO

第二個視窗執行的狀態是"正在執行查詢...",這是因為第一個事務並沒有完成(COMMIT OR ROLLBACK),而第二個事務需要讀取第一個事務所依賴的資源,事務不會識別中間狀態(我們也可以理

解為"未知狀態",因為在未完成之前,我們無法知道知道第一個事務的最終狀態是提交,還是復原),正式因為這個原因,而已第二個事務才舉棋不定,無法讀取。這個樣本很直接的說明了事務的

隔離性。

持久性:持久性主要是依靠記錄裝置,SQL Server 2005中指的是交易記錄。即使伺服器硬體、作業系統或資料庫引擎 執行個體自身出現故障,該執行個體也可以在重新啟動時使用交易記錄,將所有未完成的事務自動地復原到系統出現故障的點,具體的實現在這就不詳細說明了,大家可以參考相關資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.