游標宣告後,必須用 OPEN 命令開啟才能讀取資料。語法:
OPEN { { [GLOBAL] cursor_name } | cursor_variable_name }
GLOBAL:定義為全域游標cursor_name:宣告的游標名稱。同名全域與區域游標共存時,GLOBAL 指定全域,否則為區域cursor_variable_name:游標變數INSENSITIVE 或 STATIC 時,OPEN 產生臨時表儲存結果集(位於 tempdb)OPEN 失敗KEYSET 選項時,OPEN 在 tempdb 建立臨時表儲存鍵值游標成功開啟後,@@CURSOR_ROWS 記錄游標內資料行數。為提升效能,SQL Server 允許非同步方式從基礎表向 KEYSET 或靜態游標讀入資料:
sp_configure cursor threshold 參數值@@CURSOR_ROWS 儲存調用時刻游標已從基礎表讀入的行數
(註:原文圖片引用為表 13-1,此處為佔位符)
若宣告帶 SCROLL 或 INSENSITIVE,@@CURSOR_ROWS 為正數且等於所有資料行;未加這兩保留字則值為 -1,表示游標僅有一條記錄。