使用遊標有四種基本的步驟:聲明遊標、開啟遊標、提取資料、關閉遊標。
如下面SQL樣本所示:
-- =============================================
-- Author: <搏擊的小船>
-- Create date: <2011-04-19>
-- Description: <SQL SERVER 遊標DEMO>
-- =============================================
--暫存資料表
CREATE TABLE ##TempTB
(
ID INT IDENTITY,
ColA VARCHAR(50),
ColB VARCHAR(50)
)
DECLARE @i INT=0;
WHILE(@i<10)
BEGIN
INSERT INTO ##TempTB
(ColA, ColB )
VALUES (
'測試欄位ColA'+CAST(@i AS VARCHAR(10))
,
'測試欄位ColB'+CAST(@i AS VARCHAR(10))
)
SET @i=@i+1;
END
--SELECT * FROM ##TempTB;
--定義3個變數來接收遊標遍曆的值
DECLARE @a VARCHAR(50),
@b VARCHAR(50),
@c VARCHAR(50);
--申明遊標並填充資料
DECLARE cur CURSOR FOR SELECT * FROM ##TempTB
--開啟遊標
OPEN cur
--取下一條資料填充
FETCH NEXT FROM cur INTO @a,@b,@c
SELECT @a,@b,@c;
--@@FETCH_STATUS | 0 提取成功; 1語句失敗或行不在結果集中;2提取的行不存在
WHILE(@@FETCH_STATUS=0)
BEGIN
--to do sth//
FETCH NEXT FROM cur INTO @a,@b,@c;
SELECT @a,@b,@c;
END
--關閉遊標
CLOSE cur
--刪除遊標資源
DEALLOCATE cur
DROP TABLE ##TempTB;