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