關於SQL中游標的使用

2021-05-02 18:45:33 字數 1451 閱讀 8940

前言:不想寫太多的理**字,怕把大家給搞怕了,以至看完整篇文字還不知道游標是到底做什麼的。所以現在我們就切入主題。

一、游標的使用

使用游標的順序: 聲名游標、開啟游標、讀取資料、關閉游標、刪除游標。

宣告游標

最簡單游標宣告:declare 《游標名》cursor for如:declare mycursor cursor for select age,name from t_user

其中select語句可以是簡單查詢,也可以是複雜的接連查詢和巢狀查詢

開啟游標

非常簡單,我們就開啟剛才我們宣告的游標mycursor

open mycursor      

讀取資料

fetch [ next | prior | first | last] from [ into @變數名 [,…] ]

引數說明:

next   取下一行的資料,並把下一行作為當前行(遞增)。由於開啟游標後,行指標是指向該游標第1行之前,所以第一次執行fetch next操作將取得游標集中的第1行資料。next為預設的游標提取選項。

into @變數名[,…]  把提取操作的列資料放到區域性變數中。

列表中的各個變數從左到右與游標結果集中的相應列相關聯。

各變數的資料型別必須與相應的結果列的資料型別匹配或是結果列資料型別所支援的隱性轉換。變數的數目必須與游標選擇列表中的列的數目一致。       

關閉游標

close mycursor              

刪除游標

deallocate mycursor  

二、給出具體的例子:

declare @age int

declare @name varchar(20)

declare mycursor cursor for select age,name from t_user

open mycursor

--開啟游標

fetch next from mycursor into @age,@name

--開始抓第一條資料

while @@fetch_status=0                                   --如果資料集裡一直有資料

begin

update t_user set [name]=@name,age=@age

fetch next from mycursor into @age,@name

--跳到下一條資料

end 

close mycursor 

--關閉游標

deallocate mycursor

--刪除游標

SQL中游標的使用

declare studentnum varchar 9 course varchar 10 achievement tinyint,classorder tinyint declare pstudentnum varchar 9 allcourse varchar 60 declare allac...

sql 中游標的使用

declare id int declare addtime datetime declare cursor1 cursor for 定義游標cursor1 select id,addtime from mr examine 使用游標的物件 跟據需要填入select文 open cursor1 開啟...

SQL中游標的使用

一般情況下,我們用select這些查詢語句時,都是針對的一行記錄而言,如果要在查詢分析器中對多行記錄 即記錄集 進行讀取操作時,則需要使用到游標或while等迴圈 游標的型別 1 靜態游標 不檢測資料行的變化 2 動態游標 反映所有資料行的改變 3 僅向前游標 不支援滾動 4 鍵集游標 能反映修改,...