每一個游標必須有四個組成部分這四個關鍵部分必須符合下面的順序;
1.DECLARE 游標
2.OPEN 游標
3.從一個游標中FETCH 信息
4.CLOSE 或DEALLOCATE 游標
通常我們使用DECLARE 來聲明一個游標聲明一個游標主要包括以下主要內容: 游標名字 數據來源(表和列) 選取條件 屬性(僅讀或可修改)
其語法格式如下:
DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSOR
FOR select_statement
[FOR {READ ONLY | UPDATE [OF column_name [,...n]]}]
其中: cursor_name
指游標的名字。 INSENSITIVE
表明MS SQL SERVER 會將游標定義所選取出來的數據記錄存放在一臨時表內(建立在tempdb 數據庫下)。對該游標的讀取操作皆由臨時表來應答。因此,對基本表的修改並不影響游標提取的數據,即游標不會隨著基本表內容的改變而改變,同時也無法通過
游標來更新基本表。如果不使用該保留字,那麼對基本表的更新、刪除都會反映到游標中。
另外應該指出,當遇到以下情況發生時,游標將自動設定INSENSITIVE 選項。
在SELECT 語句中使用DISTINCT、 GROUP BY、 HAVING UNION 語句;
使用OUTER JOIN;
所選取的任意表沒有索引;
將實數值當作選取的列。 SCROLL
表明所有的提取操作(如FIRST、 LAST、 PRIOR、 NEXT、 RELATIVE、 ABSOLUTE)都可用。如果不使用該保留字,那麼只能進行NEXT 提取操作。由此可見,SCROLL 極大地增加了提取數據的靈活性,可以隨意讀取結果集中的任一行數據記錄,而不必關閉再
重開游標。 select_statement
是定義結果集的SELECT 語句。應該注意的是,在游標中不能使用COMPUTE、COMPU- TE BY、 FOR BROWSE、 INTO 語句。 READ ONLY