Sql Server資料庫事務介紹(一)—什麼是事務

來源:互聯網
上載者:User

      事務是單個的工作單元。如果某一事務成功,則在該事務中進行的所有資料修改均會提交,成為資料庫中的永久組成部分。如果事務遇到錯誤且必須取消或復原,則所有資料修改均被清除。

      舉個例子,比如你去銀行轉帳就是一個事務。轉帳可以簡單的分為兩個步驟,一是把錢從你的帳戶中扣除,二是把錢存到你指定轉帳的帳戶中。這兩個步驟就是一個事務,必須全部執行,或是全部不執行。如果從你帳戶扣錢成功,但是轉帳失敗,那麼你轉帳的錢就沒有了;如果是扣錢失敗了,但是轉帳成功了,那銀行就虧了。

       事務是作為單個邏輯工作單元執行的一系列操作。一個邏輯工作單元必須有四個屬性,稱為原子性、一致性、隔離性和持久性 (ACID) 屬性,只有這樣才能成為一個事務。
       原子性:事務必須是原子工作單元;對於其資料修改,要麼全都執行,要麼全都不執行。
       一致性:事務在完成時,必須使所有的資料都保持一致狀態。在相關資料庫中,所有規則都必須應用於事務的修改,以保持所有資料的完整性。事務結束時,所有的內部資料結構(如 B 樹索引或雙向鏈表)都必須是正確的。
       隔離:由並發事務所做的修改必須與任何其他並發事務所做的修改隔離。事務識別資料時資料所處的狀態,要麼是另一併發事務修改它之前的狀態,要麼是第二個事務修改它之後的狀態,事務不會識別中間狀態的資料。這稱為可串列性,因為它能夠重新裝載起始資料,並且重播一系列事務,以使資料結束時的狀態與原始事務執行的狀態相同。
      持久性:事務完成之後,它對於系統的影響是永久性的。該修改即使出現系統故障也將一直保持。

      SQL Server 以下列事務模式運行。
      自動認可事務:每條單獨的語句都是一個事務。
      明確交易:每個事務均以 BEGIN TRANSACTION 語句顯式開始,以 COMMIT 或 ROLLBACK 語句顯式結束。
      隱含交易:在前一個事務完成時新事務隱式啟動,但每個事務仍以 COMMIT 或 ROLLBACK 語句顯式完成。
      批處理級事務:只能應用於多個活動結果集 (MARS),在 MARS 會話中啟動的 Transact-SQL 顯式或隱含交易變為批處理級事務。當批處理完成時沒有提交或復原的批處理級事務自動由 SQL Server 進行復原。

      Sql Server中有三種使用事務的方法,分別是Sql語句,SqlTransaction和TransactionScope,下面一節將分別介紹這三種事務的使用方法。http://blog.csdn.net/tjvictor/archive/2009/04/14/4074240.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.