DEALLOCATE DEALLOCATE - 北京怡康軟件科技有限公司 資源網(wǎng) "/>

亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区

  • 相關(guān)軟件
    >DEALLOCATE 創(chuàng)建者:webmaster 更新時間:2006-02-16 15:51

    刪除游標(biāo)引用。當(dāng)釋放最后的游標(biāo)引用時,組成該游標(biāo)的數(shù)據(jù)結(jié)構(gòu)由 Microsoft® SQL Server™ 釋放。



    語法


    DEALLOCATE { { [ GLOBAL ] cursor_name } | @cursor_variable_name }



    參數(shù)


    cursor_name



    是已聲明游標(biāo)的名稱。當(dāng)全局和局部游標(biāo)都以 cursor_name 作為它們的名稱存在時,如果指定 GLOBAL,則 cursor_name 引用全局游標(biāo),如果未指定 GLOBAL,則 cursor_name 引用局部游標(biāo)。



    @cursor_variable_name



    cursor 變量的名稱。@cursor_variable_name 必須為 cursor 類型。



    注釋


    對游標(biāo)進(jìn)行操作的語句使用游標(biāo)名稱或游標(biāo)變量引用游標(biāo)。DEALLOCATE 刪除游標(biāo)與游標(biāo)名稱或游標(biāo)變量之間的關(guān)聯(lián)。如果一個名稱或變量是最后引用游標(biāo)的名稱或變量,則將釋放游標(biāo),游標(biāo)使用的任何資源也隨之釋放。用于保護(hù)提取隔離的滾動鎖在 DEALLOCATE 上釋放。用于保護(hù)更新(包括通過游標(biāo)進(jìn)行的定位更新)的事務(wù)鎖一直到事務(wù)結(jié)束才釋放。



    DECLARE CURSOR 語句分配游標(biāo)并使其與游標(biāo)名稱關(guān)聯(lián):



    DECLARE abc SCROLL CURSOR FOR
    SELECT * FROM authors


    游標(biāo)名稱與某個游標(biāo)關(guān)聯(lián)之后,該游標(biāo)在釋放之前不能用作相同作用域(GLOBAL 或 LOCAL)內(nèi)另一個游標(biāo)的名稱。



    游標(biāo)變量使用下列兩種方法之一與游標(biāo)關(guān)聯(lián):


    • 通過名稱,使用 SET 語句將游標(biāo)設(shè)置為游標(biāo)變量:
      DECLARE @MyCrsrRef CURSOR
      SET @MyCrsrRef = abc



    • 也可以不定義游標(biāo)名稱而創(chuàng)建游標(biāo)并使其與變量關(guān)聯(lián):
      DECLARE @MyCursor CURSOR
      SET @MyCursor = CURSOR LOCAL SCROLL FOR
      SELECT * FROM titles




    DEALLOCATE @cursor_variable_name 語句只刪除對游標(biāo)命名變量的引用。直到批處理、存儲過程或觸發(fā)器結(jié)束時變量離開作用域,才釋放變量。在 DEALLOCATE @cursor_variable_name 語句之后,可以使用 SET 語句使變量與另一個游標(biāo)關(guān)聯(lián)。



    USE pubs
    GO
    DECLARE @MyCursor CURSOR
    SET @MyCursor = CURSOR LOCAL SCROLL FOR
    SELECT * FROM titles

    DEALLOCATE @MyCursor

    SET @MyCursor = CURSOR LOCAL SCROLL FOR
    SELECT * FROM sales
    GO


    不必顯式釋放游標(biāo)變量。變量在離開作用域時被隱性釋放。



    權(quán)限


    默認(rèn)情況下,將 DEALLOCATE 權(quán)限授予任何有效用戶。



    示例


    下面的腳本顯示游標(biāo)如何持續(xù)到最后的名稱或持續(xù)到引用它們的變量已釋放。



    USE pubs
    GO
    -- Create and open a global named cursor that
    -- is visible outside the batch.
    DECLARE abc CURSOR GLOBAL SCROLL FOR
    SELECT * FROM authors
    OPEN abc
    GO
    -- Reference the named cursor with a cursor variable.
    DECLARE @MyCrsrRef1 CURSOR
    SET @MyCrsrRef1 = abc
    -- Now deallocate the cursor reference.
    DEALLOCATE @MyCrsrRef1
    -- Cursor abc still exists.
    FETCH NEXT FROM abc
    GO
    -- Reference the named cursor again.
    DECLARE @MyCrsrRef2 CURSOR
    SET @MyCrsrRef2 = abc
    -- Now deallocate cursor name abc.
    DEALLOCATE abc
    -- Cursor still exists, referenced by @MyCrsrRef2.
    FETCH NEXT FROM @MyCrsrRef2
    -- Cursor finally is deallocated when last referencing
    -- variable goes out of scope at the end of the batch.
    GO
    -- Create an unnamed cursor.
    DECLARE @MyCursor CURSOR
    SET @MyCursor = CURSOR LOCAL SCROLL FOR
    SELECT * FROM titles
    -- The following statement deallocates the cursor
    -- because no other variables reference it.
    DEALLOCATE @MyCursor
    GO
    相關(guān)文章
    本頁查看次數(shù):