SqlCollections - 遊標

 1 --==============================遊標===============================
 2 --使用遊標操做數據
 3 --1 定義遊標
 4 DECLARE 遊標_類別名稱 CURSOR FAST_FORWARD    --FAST_FORWARD:啓用了性能優化後的只讀向前遊標
 5 FOR SELECT 類別名稱,說明 FROM 類別
 6 --2 打開遊標
 7 OPEN 遊標_類別名稱
 8 --3 操做遊標
 9 DECLARE @類別名稱 nvarchar(15),@說明 nvarchar(max)
10 --3.1 讀取遊標中的第一條,並存儲在變量中
11 FETCH NEXT FROM 遊標_類別名稱
12 INTO @類別名稱,@說明
13 --3.2 判斷是否從遊標中取出數據
14 WHILE(@@FETCH_STATUS = 0)    --0:成功;-1:失敗;-2:要讀取的記錄已經不存在
15 BEGIN
16     PRINT '類別名稱:' + @類別名稱 + char(10) + '類別說明:' + @說明 + char(10)
17     --3.3 讀取遊標中的下一數據
18     FETCH NEXT FROM 遊標_類別名稱 
19     INTO @類別名稱,@說明
20 END
21 --4 關閉遊標
22 CLOSE 遊標_類別名稱
23 --5 刪除遊標
24 DEALLOCATE 遊標_類別名稱
25 
26 --遊標變量
27 --1 定義遊標變量
28 DECLARE @遊標變量 CURSOR
29 --2 爲遊標變量賦值
30 SET @遊標變量 = CURSOR FOR SELECT * FROM 類別
31 --3 打開遊標變量
32 OPEN @遊標變量
33 --4 操做遊標變量
34 FETCH NEXT FROM @遊標變量    --讀取遊標變量中的第一條數據
35 --5 關閉遊標變量
36 CLOSE @遊標變量
37 --6 刪除遊標變量
38 DEALLOCATE @遊標變量
39 
40 --查看遊標狀態
41 --函數CURSOR_STATUS(type,name),type能夠是:'local','global','variable',分別表示本地、全局、變量型遊標,name表示遊標名
42 DECLARE @遊標變量2 CURSOR
43 SET @遊標變量2 = CURSOR FOR SELECT * FROM 類別
44 OPEN @遊標變量2
45 --輸出1,表明遊標已經打開
46 print CURSOR_STATUS('variable','@遊標變量2')
47 CLOSE @遊標變量2
48 DEALLOCATE @遊標變量2
相關文章
相關標籤/搜索