程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server詳細學習游標(2)

SQL Server詳細學習游標(2)

編輯:關於SqlServer


    3.游標的生命周期

游標的生命周期包含有五個階段:聲明游標、打開游標、讀取游標數據、關閉游標、釋放游標。

聲明游標是為游標指定獲取數據時所使用的Select語句,聲明游標並不會檢索任何數據,它只是為游標指明了相應的Select 語句。

Declare 游標名稱 Cursor 參數

聲明游標的參數

Local與Global:Local表示游標的作用於僅僅限於其所在的存儲過程、觸發器以及批處理中、執行完畢以後游標自動釋放。Global表示的是該游標作用域是整個會話層。由連接執行的任何存儲過程、批處理等都可以引用該游標名稱,僅在斷開連接時隱性釋放。
Forward_only與Scroll:前者表示為只進游標,後者表示為可以隨意定位。默認為前者。
Static、Keyset與Dynamic: 第一個表示定義一個游標,其數據存放到一個臨時表內,對游標的所有請求都從臨時表中應答,因此,對該游標進行提取操作時返回的數據不反映對基表所作的修改,並且該游標不允許修改。Keyset表示的是,當游標打開時,鍵集驅動游標中行的身份與順序是固定的,並把其放到臨時表中。Dynamic表示的是滾動游標時,動態游標反映對結果集內所有數據的更改。
Read_only 、Scroll_Locks與Optimistic:第一個表示的是只讀游標,第二個表示的是在使用的游標結果集數據上放置鎖,當行讀取到游標中然後對它們進行修改時,數據庫將鎖定這些行,以保證數據的一致性。Optimistic的含義是游標將數據讀取以後,如果這些數據被更新了,則通過游標定位進行的更新與刪除操作將不會成功。
標准游標:

Declare MyCursor Cursor
       For Select * From Master_Goods

只讀游標

Declare MyCusror Cursor
      For Select * From Master_Goods
      For Read Only

可更新游標

Declare MyCusror Cursor
      For Select * From Master_Goods
      For UpDate

打開游標使用Open語句用於打開Transaction-SQL服務器游標,執行Open語句的過程中就是按照Select語句進行填充數據,打開游標以後游標位置在第一行。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved