MS SQL入門基礎 讀取游標中的資料

2021-09-05 17:14:07 字數 1635 閱讀 9599

當游標被成功開啟以後,就可以從游標中逐行地讀取資料,以進行相關處理。從游標中讀取資料主要使用fetch 命令。其語法規則為:

各引數含義說明如下:

•next

返回結果集中當前行的下一行,並增加當前行數為返回行行數。如果fetch next是第一次讀取游標中資料,則返回結果集中的是第一行而不是第二行。

•prior

返回結果集中當前行的前一行,並減少當前行數為返回行行數。如果fetch prior是第一次讀取游標中資料,則無資料記錄返回,並把游標位置設為第一行。

•first

返回游標中第一行。

•last

返回游標中的最後一行。

•absolute

如果n 或@nvar 為正數,則表示從游標中返回的資料行數。如果n 或@nvar 為負數,則返回游標內從最後一行資料算起的第n 或@nvar 行資料。若n 或@nvar 超過游標的資料子集範疇,則@@fetch_stars 返回-1, 在該情況下,如果n 或@nvar 為負數,則執行fetch next 命令會得到第一行資料,如果n 或@nvar為正值,執行fetch prior 命令則會得到最後一行資料。n 或@nvar 可以是一固定值也可以是一smallint, tinyint 或int 型別的變數。

•relative

若n 或@nvar 為正數,則讀取游標當前位置起向後的第n 或@nvar 行資料;如果n 或@nvar 為負數,則讀取游標當前位置起向前的第n 或@nvar 行資料。若n 或@nvar 超過游標的資料子集範疇,則@@fetch_stars 返回-1, 在該情況下,如果n 或@nvar 為負數,則執行fetch next 命令則會得到第一行資料;如果n 或@nvar 為正值,執行fetch prior 命令則會得到最後一行資料。n 或@nvar 可以是一固定值也可以是一smallint, tinyint或int 型別的變數。

•into @variable_name[,...n]

允許將使用fetch 命令讀取的資料存放在多個變數中。在變數行中的每個變數必須與游標結果集中相應的列相對應,每一變數的資料型別也要與游標中資料列的資料型別相匹配。

@@fetch_status 全域性變數返回上次執行fetch 命令的狀態。在每次用fetch從游標中讀取資料時,都應檢查該變數,以確定上次fetch 操作是否成功,來決定如何進行下一步處理。@@fetch_status 變數有三個不同的返回值,如表13-2。

在使用fetch 命令從游標中讀取資料時,應該注意以下的情況:

當使用sql-92 語法來宣告乙個游標時,沒有選擇scroll 選項時,只能使用fetch next 命令來從游標中讀取資料,即只能從結果集第一行按順序地每次讀取一行,由於不能使用first、 last、 prior, 所以無法回滾讀取以前的資料。如果選擇了scroll 選項,則可能使用所有的fetch 操作。

當使用ms sql server 的擴充套件語法時,必須注意以下約定:

•如果定義了forward-only 或fast_forward 選項,則只能使用fetch next命令;

•如果沒有定義dynamic, forward_only 或fast_forward 選項,而定義了keyset, static 或scroll 中的任何乙個,則可使用所有的fetch 操作;

•dynamic scroll 游標支援所有的fetch, 選項但禁用absolute 選項。

MS SQL入門基礎 游標 游標的優點和種類

本章前半部分提供了在ms sql server 中應用游標所應具有的有關游標的必要知識和各種語法。從中讀者可以了解游標的優點 種類 作用 學會如何定義 開啟 訪問 關閉 釋放游標以及游標的應用。除此之外,在本章的後半部分我們介紹了檢視和使用者自定義函式,使讀者了解檢視的眾多優點,比如簡化操作 提高資...

oracle sql游標入門基礎

declare 定義游標 cursor c cursor is 返回 lsbzdw dwbh lsbzdw dwmc select lsbzdw dwbh lsbzdw dwmc from lsbzdw where lsbzdw tybz 0 and lsbzdw dwmc not like 合併 ...

MS SQL入門基礎 SQL 變數

transact sql中可以使用兩種變數,一種是區域性變數 local variable 另外一種是全域性變數 global variable 4.4.1 區域性變數 區域性變數是使用者可自定義的變數,它的作用範圍僅在程式內部。在程式中通常用來儲存從表中查詢到的資料,或當作程式執行過程中暫存變數使...