光標變量:
光標變量用來存儲光標定義的一個引用,由變量定義的光標定義為局部光標,在一些命令中可以直接用光標變量來代替光標的引用,如命令OPEN, FETCH, CLOSE及DEALLOCATE光標變量支持所有的T-SQL光標語法,與可修改光標一樣,可以定義為只讀的,光標變量和光標數據類型與普通變量和數據類型使用情況大多數都一樣,只有三點例外:
(1)不可以將表的列定義為光標類型。
(2)不可以把光標定義成存儲過程的輸入參數(但是可以定義成輸出參數)
(3)不可以用SELECT語句給光標變量賦值(必須使用SET命令進行賦值)
例如:
DECLARE @cursor CURSOR
SET @cursor = CURSOR FOR SELECT * FROM authors
OPEN @cursor
FETCH @cursor
WHILE (@@FETCH_STATES = 0)
BEGIN
FETCH @cursor
END
CLOSE @cursor
DEALLOCATE @cursor
光標變量還可用已有的光標賦值。
例如:
DECLARE @cursor CURSOR
DECLARE c CURSOR FOR SELECT * FROM authors
SET @cursor? =c
OPEN @cursor
FETCH @cursor
WHILE (@@FETCH_STATES = 0)
BEGIN
FETCH @cursor
END
CLOSE @cursor
DEALLOCATE @cursor
DEALLOCATE c
單獨釋放光標和光標變量,它將仍然在內存中,直到直接釋放或者是最后的應用變量超出范圍,兩種條件任何一種都可以完全釋放光標,將一個普通光標賦值給了一個光標變量之后,釋放原始光標并不能禁止通過使用光標變量來繼續訪問。釋放一個光標引用而不是最后一個引用,只能是刪除了通過這種途徑訪問光標的能力,光標本身仍然存在,直到最后一個引用變量被釋放或是超出范圍。
以上內容是《Transact-SQL權威指南》一書的讀書筆記,感謝作者KEN HENDERSON 和 譯者 健蓮科技 中國電力出版社 為我帶來這么經典的T-SQL書籍。
光標變量用來存儲光標定義的一個引用,由變量定義的光標定義為局部光標,在一些命令中可以直接用光標變量來代替光標的引用,如命令OPEN, FETCH, CLOSE及DEALLOCATE光標變量支持所有的T-SQL光標語法,與可修改光標一樣,可以定義為只讀的,光標變量和光標數據類型與普通變量和數據類型使用情況大多數都一樣,只有三點例外:
(1)不可以將表的列定義為光標類型。
(2)不可以把光標定義成存儲過程的輸入參數(但是可以定義成輸出參數)
(3)不可以用SELECT語句給光標變量賦值(必須使用SET命令進行賦值)
例如:
DECLARE @cursor CURSOR
SET @cursor = CURSOR FOR SELECT * FROM authors
OPEN @cursor
FETCH @cursor
WHILE (@@FETCH_STATES = 0)
BEGIN
FETCH @cursor
END
CLOSE @cursor
DEALLOCATE @cursor
光標變量還可用已有的光標賦值。
例如:
DECLARE @cursor CURSOR
DECLARE c CURSOR FOR SELECT * FROM authors
SET @cursor? =c
OPEN @cursor
FETCH @cursor
WHILE (@@FETCH_STATES = 0)
BEGIN
FETCH @cursor
END
CLOSE @cursor
DEALLOCATE @cursor
DEALLOCATE c
單獨釋放光標和光標變量,它將仍然在內存中,直到直接釋放或者是最后的應用變量超出范圍,兩種條件任何一種都可以完全釋放光標,將一個普通光標賦值給了一個光標變量之后,釋放原始光標并不能禁止通過使用光標變量來繼續訪問。釋放一個光標引用而不是最后一個引用,只能是刪除了通過這種途徑訪問光標的能力,光標本身仍然存在,直到最后一個引用變量被釋放或是超出范圍。
以上內容是《Transact-SQL權威指南》一書的讀書筆記,感謝作者KEN HENDERSON 和 譯者 健蓮科技 中國電力出版社 為我帶來這么經典的T-SQL書籍。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
