【ASP.NET・C#】ストアドプロシージャでカーソルを使用する
■今回の紹介
ストアドでカーソルを使用するときのメモを残します。
■処理手順
1.ストアドの宣言
2.一時格納用の変数の宣言
3.カーソルの宣言
4.作業対象のデータを作業領域に取得し、カーソルをオープン
5.一行を取り出す
6.取り出した時に2で用意した一時格納変数に格納
7.6で取得した値に応じて処理を行う(別テーブルにinsertや対象データをupdate)
8.6から7を4で格納した行の数だけ行う(繰り返し処理)
9.カーソルのクローズ(カーソルが使用するリソースの解放)
【参考ソース】
--ストアドの作成 create procedure cursor_sample as --変数の宣言 DECLARE @A nvarchar (50) DECLARE @B nvarchar (50) --カーソルの宣言 DECLARE Cur_Cursor CURSOR LOCAL FOR select A,B from Table_1 --カーソルをオープン open Cur_Cursor --1行取り出す FETCH NEXT FROM Cur_Cursor INTO @A,@B --ループ WHILE(@@FETCH_STATUS=0) BEGIN --1行ごとに以下の処理を行う UPDATE TableW set C = @B where D= @A; FETCH NEXT FROM Cur_Cursor INTO @A,@B end --カーソルを閉じる CLOSE Cur_Cursor DEALLOCATE Cur_Cursor