SQL Server 對游標的使用要遵循以下順序:
(1) 聲明游標 (declare)
(2) 打開游標 (open)
(3) 讀取游標 (fetch)
(4) 關閉游標 (close)
(5) 釋放游標 (deallocate)
delclare <游標名] [insensitive] [scroll]cursor
for <select 語句>
[for readonly] |update [of <列名>,[,…..n]]
insensitive :使用insensitive定義的游標,把提取出來的數據存入一個在tempdb數據庫中創建的臨時表中。任何通過這個游標的操作,都在這個臨時表中進行,所有對基本表的更改都不會在通過游標進行的操作中體現出來。若不適用insensi-tive關鍵字,則所有用戶對基本表的更新和刪除都會反應到游標中。
scroll :表明所有的提取操作(如 first 、last、prior、next、relative、abso-lute)都可以用。若不使用scroll ,那么只能進行next提取操作。
readonly :定義只讀游標,不允許通過游標修改數據。
update [of <列名>,[,…..n]] :定義游標中可更新的列。如果指定of <列名>[,…..n],則只允許修改所列出的列。如果只有update,沒有指定列的列表,則可以更新所有列。
聲明游標以后,出了可以使用游標名稱來引用外,還可以使用游標變量來引用游標。
游標變量聲明格式:
declare @ 變量名 cursor
聲明游標變量后,其必須與某個游標相關聯才可以實現游標操作,即使用set 賦值語句來講