国产探花免费观看_亚洲丰满少妇自慰呻吟_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 命令將有更加清晰的了解。


上一篇:游標的應用

下一篇:聲明游標

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永春县| 郯城县| 石泉县| 梓潼县| 德令哈市| 乌拉特前旗| 石城县| 昭平县| 乌鲁木齐县| 五家渠市| 耒阳市| 武邑县| 苍溪县| 泾源县| 普兰县| 武功县| 定西市| 蒲城县| 商丘市| 罗田县| 黄梅县| 银川市| 兴化市| 贵定县| 鄱阳县| 酒泉市| 伽师县| 长春市| 丰顺县| 六枝特区| 博乐市| 内丘县| 北宁市| 荣昌县| 曲松县| 弥勒县| 磐安县| 浦县| 西贡区| 嘉荫县| 阳江市|