T-SQLで使われているCURSORというものについて調べてみた。
CURSORとは
SELECTで取得したデータを1行ずつ取り出す事ができるという機能。それにより1行毎に処理を書く事ができる。
--カーソル宣言
DECLARE カーソル名 CURSOR FOR
SELECT 値 FROM テーブル名 WHERE 条件
--カーソルOPEN
OPEN カーソル名
FETCH NEXT FROM カーソル名 INTO 値
--FETCHで1行ずつ取り出す
WHILE @@FETCH STATUS = 0
BEGIN
--目的の処理
FETCH NEXT FROM カーソル名 INTO 値
END
--カーソル解除
CLOSE カーソル名
DEALLOCATE カーソル名