1. 程式人生 > >Sql Server資料庫開發(5)事物和遊標

Sql Server資料庫開發(5)事物和遊標

1.瞭解事物

  • 事務(是一個不可分割的工作邏輯單元) - 是由若干條T-SQL指令組成的作為單個邏輯過左單元執行的一系列操作,這些操作作為一個整體一起向系統提交,全部執行完成,要麼全部撤銷。

  • 事務的四個特性(簡稱ACID):原子性、一致性、隔離性、永久性。 - 原子性:事務是一個完整的操作,每一步的操作都是不可分的,要麼都執行,要麼不執行,不存在只完成一部分的情況。 - 一致性:當事務完成時,資料必須處於一致狀態;在事務開始之前及完成之後,資料儲存中的資料處於一致狀態,處理期間可以不一致。 - 隔離性:事務之間是相互隔離的,如果有兩個事務對同一個資料庫物件進行操作,比如讀取表中的資料。任何一個事務看到的所有內容要麼是其他事務完成之前的狀態,要麼就是之後的狀態,一個事務不可能遇到另一個事務中的中間狀態。 - 永久性

    :事務完成以後,它對資料庫的修改被永久保持,事務日誌能夠保持事務的永久性,即使出現系統故障也將一直保持。

      **事務的模式:顯式事務、自動提交事務、隱式事務**
    

    -顯式事務:是使用者使用T-SQL明確定義開始(begin transaction)和結束(commit transaction)或rollback transcation)的事務。 -自動提交事物:sql server預設事物方式,能夠自動執行並能自動回滾的事物,對資料進行刪除/修改等操作時,如若出現錯誤,取消操作。 -隱式事物:當事物提交或回滾後,自動開始的事物。

2.學習遊標

  • 遊標: 遊標實際上是一種能從包括多條資料記錄的結果集中每次提取一條記錄的機制。 - 遊標可以實現: –1.允許定位到結果集中的特定行。 – 2.從結果集的當前位置檢索一行或者多行資料。 – 3.支援對結果集中當前位置的行進行修改。
  • SQL Server支援的遊標
    • T-SQL遊標: -基於declare cursor語法,主要用於T-SQL指令碼、儲存過程和觸發器中. -在伺服器上實現,由客戶端發往伺服器的T-SQL指令進行管理.
    • API遊標: -基於應用程式介面,在伺服器上實現.
    • 客戶端遊標: -通過在客戶端快取記憶體所有結果集和進行.
  • 遊標的基本操作: 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述
  • eg:在這裡插入圖片描述