T SQL資料型別的細微差別(四)

2022-02-21 20:05:10 字數 1125 閱讀 8599

游標變數:

游標變數用來儲存游標定義的乙個引用,由變數定義的游標定義為區域性游標,在一些命令中可以直接用游標變數來代替游標的引用,如命令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

endclose @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

endclose @cursor

deallocate @cursor

deallocate c

單獨釋放游標和游標變數,它將仍然在記憶體中,直到直接釋放或者是最後的應用變數超出範圍,兩種條件任何一種都可以完全釋放游標,將乙個普通游標賦值給了乙個游標變數之後,釋放原始游標並不能禁止通過使用游標變數來繼續訪問。釋放乙個游標引用而不是最後乙個引用,只能是刪除了通過這種途徑訪問游標的能力,游標本身仍然存在,直到最後乙個引用變數被釋放或是超出範圍。

以上內容是《transact-sql權威指南》一書的讀書筆記,感謝作者ken henderson 和 譯者 健蓮科技 中國電力出版社 為我帶來這麼經典的t-sql書籍。

T SQL資料型別的細微差別(一)

日期型 sql server的日期種類 日期時間型和小日期時間型,日期和時間在sql server中資料是在一起的。日期時間型的列需要8個儲存位元組,可以儲存從1753年1月1日到9999年12月3日,小日期時間型的列需要4個位元組,可以從1900年1月1日到2079年6月6日,日期時間型的列儲存日...

SQL server 中的資料型別 T SQL

sql server中的資料型別,方便檢閱 資料型別 描述char n 固定長度的字串。最多 8,000 個字元。varchar n 可變長度的字串。最多 8,000 個字元。varchar max 可變長度的字串。最多 1,073,741,824 個字元。text 可變長度的字串。最多 2gb 字...

SQL server 中的資料型別 T SQL

sql server中的資料型別,方便檢閱 資料型別 描述char n 固定長度的字串。最多 8,000 個字元。varchar n 可變長度的字串。最多 8,000 個字元。varchar max 可變長度的字串。最多 1,073,741,824 個字元。text 可變長度的字串。最多 2gb 字...