SQL Server —遊標的用法

一,遊標的概念

一條SQL語句可以產生多條記錄,百而主語言是一次只能存放一條記錄的度。因此,引入遊標的概念:遊標是系統爲用戶開放版的一個數據緩衝區,存放SQL語句的執行結果。
用戶可以通過遊標逐一獲取權記錄,交給主語言處理。

可以把遊標當作一個指針,它可以指定結果中的任何位置,然後允許用戶對指定位置的數據進行處理。

二,遊標的操作步驟

  • 聲明遊標(declare)

  • 打開遊標(open)

  • 讀取遊標(fetch)

  • 關閉遊標(close)

  • 釋放遊標(deallocate)

三,操作實例

在這裏插入圖片描述
需求如下:

--修改消費等級(ConsumeLevel)這個字段
--當消費金額大於1000,等級大客戶
--500-1000包括500,不包括1000,等級中客戶
--小於500小客戶

1,聲明遊標`

--聲明遊標
declare cur_customer Cursor 
for select id,ConsumeAmount from  Customers

2,打開遊標`

--打開遊標
open cur_customer

3,讀取遊標`

--通過遊標獲取數據,ID,ComsumeAmount 的取值
--取數據
declare @id int
declare @Cacount int
fetch next from cur_customer into @id,@Cacount
--循環往下
while(@@FETCH_STATUS=0)
begin 
    --print @id+@Cacount
   --修改消費等級
   if(@Cacount<500)
   update Customers set ConsumeLevel='低消費' where ID=@id
   else if(@Cacount<1000)
   update Customers set ConsumeLevel='中消費' where ID=@id
   else 
   update Customers set ConsumeLevel='高消費' where ID=@id


	fetch next from cur_customer into @id,@Cacount
end

4,關閉遊標`

--關閉遊標
close cur_customer

5,釋放遊標`

--釋放遊標
deallocate cur_customer

執行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章