在前面幾節,我們詳細介紹了如何聲明游標,從游標中讀取數據以及關閉、釋放游標的方法。下面我們將給出幾個應用實例使讀者對游標有更為全面的了解。
13.7.1 游標變量的應用
我們已經提到游標是從MS SQL SERVER 7 版本才開始使用的新的變量類型,游標常被應用在存儲過程、觸發器中。那麼游標是如何被作為變量而應用呢?看一下系統過程sp_cursor_list 的SQL 語句文本,會大有收獲。
在該存儲過程中,@cursor_return 為一游標變量,並將其結果集返回給其調用者,該結果集保存有當前所有游標的各屬性值。
提示:在存儲過程中,如果被定義為游標類型的變量使用OUTPUT選項,則必須使用VARYING保留字,即為@variable CURSOR VARYING OUTPUT形式。
例13-9: 如果准備在客戶機程序中對從數據庫服務器檢索出的數據進行處理,那麼可以創建一個包含游標的存儲過程。
首先刪除同名存儲過程jobs_cursor
接著創建存儲過程jobs_cursor
13.7.2 嵌套游標
為了靈活地處理結果集,可以在存儲過程中使用多層游標。
例13-10: 本例創建了包含二層游標的存儲過程。第一層游標存放authors 表中符合過程參數的數據記錄,每次從第一層游標中讀取一條authors 數據,然後遍歷第二層游標,將有關該authors 的信息讀取出來。如果准備生成一個嵌套報表,這種方法很有效。