前言:不想寫太多的理**字,怕把大家給搞怕了,以至看完整篇文字還不知道游標是到底做什麼的。所以現在我們就切入主題。
一、游標的使用
使用游標的順序: 聲名游標、開啟游標、讀取資料、關閉游標、刪除游標。
①宣告游標
最簡單游標宣告: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 鍵集游標 能反映修改,...