SQL中的遊標在處理一些需要循環處理的邏輯時很有用處,但是由於使用頻率相對較低,經常會忘記使用方法,每用一次就要Google一次,很有挫敗感。於是下定決心要記在腦海了,於是就想到編寫一個順口溜“口訣”。
遊標原理
遊標原理可以概括爲將SQL查詢結果填入Cursor類型,Cursor類型可以看成是一個臨時表。然後通過循環一條一條的讀到變量中進行中處理。
遊標使用的“口訣”
聲明cursor要靠for
for的後面是SQL
定義好後要open
然後變量來存儲
先從(from)cursor取(fetch)一個
取後裝到變量裏
while循環來幫忙
邏輯要在whlie裏
用完一個下一個
@@fetch_status來截止
用完之後要關閉
關閉之後要清除
按口訣編寫示例
--聲明對應declare,注意cursor變量不帶@
declare cs_demo cursor for
--for後面放查詢語句,根據具體需要自由發揮
select id,[name] from master.dbo.sysobjects where [type]='U'
--定義完成打開cursor
open cs_demo
--定義變量才存儲:用幾個字段就查詢幾個字段,相應定義幾個變量
declare @ID int,@Name varchar(100)
--取第一個
fetch next from cs_demo into @ID,@Name
--循環遍歷處理邏輯
while @@fetch_status=0
begin
--這裏是具體處理邏輯
print str(@ID)+ '->' + @Name
--用完一個下一個
fetch next from cs_demo into @ID,@Name
end
--關閉和銷燬
close cs_demo
deallocate cs_demo