2011/04/22

利用 Cursor 處理資料


一篇 ,說明了如何利用 table 變數接撈回來的資料,這邊在利用 cursor 來處理資料。

--宣告 cursor 變數,這個變數無需加上 @ 的符號,需要再用 for 後面接一個 select 的句子
--這時, SQL Server 會將 Select 的查詢結果放置在記憶體中
declare MyCursor cursor
for select * from @MyTable	--@MyTable 為資料來源變數
open MyCursor			--利用 open 指令開始 cursor
-- 以下定義變數群,用來接收 cursor 傳回來的值,
-- 由於值還不確定,所以並不需要定義資料型別,只需定義為 sysname
declare @ID sysname
declare @Name sysname
-----------------------------------
--利用 fetch next from 的指令,將 cursor 的資料傳送到變數
FETCH NEXT from MyCursor INTO @ID,@Name
while(@@FETCH_STATUS <> -1) --代表 cursor 不是最後一筆的話,則進入迴圈,代表一筆一筆取出資料
BEGIN	
	--do soming 這邊印出值,再利用 fetch next from 指令取得 下一筆資料
	print @ID
	FETCH NEXT from MyCursor INTO @ID,@Name
END
CLOSE MyCursor	--關閉 cursor
DEALLOCATE MyCursor --將 cursor 從記憶體釋放掉

0 Comments:

張貼留言