国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

關閉釋放游標

2024-07-21 02:12:55
字體:
來源:轉載
供稿:網友
13.5.1 關閉游標
    1、使用close 命令關閉游標
     在處理完游標中數據之后必須關閉游標來釋放數據結果集和定位于數據記錄上的鎖。close 語句關閉游標,但不釋放游標占用的數據結構。如果準備在隨后的使用中再次打開游標,則應使用close 命令。其關閉游標的語法規則為:
 close { { [global] cursor_name } | cursor_variable_name }
    2、自動關閉游標
    我們已經了解到游標可應用在存儲過程、觸發器和transact_sql 腳本中。如果在聲明游標與釋放游標之間使用了事務結構,則在結束事務時游標會自動關閉。其具體的情況如下所示:
(1)、聲明一個游標
(2)、打開游標
(3)、讀取游標
(4)、begin transation
(5)、數據處理
(6)、commit transation
(7)、回到步驟3
    在這樣的應用環境中。當從游標中讀取一條數據記錄進行以begin transation為開頭,commit transation 或rollback 為結束的事務處理時,在程序開始運行后,第一行數據能夠被正確返回,經由步驟7, 程序回到步驟3, 讀取游標的下一行,此時常會發現游標未打開的錯誤信息。其原因就在于當一個事務結束時,不管其是以commit transation 還是以rollback transation 結束,ms sql server 都會自動關閉游標,所以當繼續從游標中讀取數據時就會造成錯誤。
    解決這種錯誤的方法就是使用set 命令將cursor_close_on_commit 這一參數設置為off 狀態。其目的就是讓游標在事務結束時仍繼續保持打開狀態,而不會被關閉。使用set 命令的格式為:
 set cursor_close_on_commit off

13.5.2 釋放游標
    在使用游標時,各種針對游標的操作或者引用游標名,或者引用指向游標的游標變量。當close 命令關閉游標時,并沒有釋放游標占用的數據結構。因此常使用deallocate 命令。通過該命令可以刪除掉游標與游標名或游標變量之間的聯系,并且釋放游標占用的所有系統資源。其語法規則為:
    deallocate { { [global] cursor_name } | @cursor_variable_name}
    各參數的含義參看13.3 打開游標一節。
    當使用deallocate @cursor_variable_name 來刪除游標時,游標變量并不會被釋放,除非超過使用該游標的存儲過程、觸發器的范圍(即游標的作用域)。

13.5.3 游標變量
    游標變量是從ms sql server 7 版本才開始使用的一種新增數據類型。定義一個游標變量主要有兩種方法。
    首先我們先聲明一個游標。


    使用set 語句將一游標賦值給游標變量:

    將聲明游標語句放在游標賦值語句中,如下所示:

    例13-5: 下面給出一個具體完整的例子,在該例子中我們對deallocate 命令將有更加清晰的了解。


上一篇:游標的應用

下一篇:聲明游標

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万年县| 长葛市| 河南省| 阳泉市| 永仁县| 达拉特旗| 西吉县| 拉萨市| 北流市| 泰州市| 和平县| 营山县| 恩平市| 上蔡县| 泸定县| 松潘县| 富宁县| 甘孜县| 潞西市| 临武县| 普定县| 石台县| 商洛市| 绥中县| 黄大仙区| 车险| 泽普县| 天气| 登封市| 灵璧县| 监利县| 汽车| 长治市| 武山县| 工布江达县| 鄂托克前旗| 霍州市| 和顺县| 衡南县| 若尔盖县| 巴马|