SQL Server のカーソルを使用する方法

SQL Server のカーソルは、次のような用途で使うことができます。

  1. カーソルの宣言: DECLAREステートメントを使用してカーソル変数を宣言し、そのカーソルの名前、カーソルタイプ、カーソルのクエリステートメントを指定します。例: DECLARE cursor_name CURSOR TYPE FOR select_statement;
  2. カーソルのオープン: OPEN ステートメントを使用してカーソルを開き、利用できるようにします。例: OPEN cursor_name;
  3. カーソルから1つまたは複数のデータを取得します。フェッチオプションを使用して、取得するデータの数と順序を制御できます。例: FETCH NEXT FROM cursor_name INTO variable_list;
  4. 取得したカーソルデータの加工。計算、更新、削除などの操作をカーソルデータに対して行うことができます。
  5. カーソルを閉じる:CLOSE ステートメントを使ってカーソルを閉じ、カーソルによって占有されているリソースを解放します。例:CLOSE cursor_name;
  6. カーソルを破棄する:カーソルを破棄するには、DEALLOCATE文を使用して、カーソル変数が占有するメモリ領域を解放します。例:DEALLOCATE cursor_name;

次に、カーソルを使用した一例を示します。
DECLARE @name VARCHAR(50);
DECLARE cursor_name CURSOR FOR
SELECT name FROM table_name;
OPEN cursor_name;
FETCH NEXT FROM cursor_name INTO @name;
WHILE @@FETCH_STATUS = 0
BEGIN
– データを処理します
PRINT @name;
FETCH NEXT FROM cursor_name INTO @name;
END
CLOSE cursor_name;
DEALLOCATE cursor_name;

上記サンプルでは、カーソルcursor_nameはテーブルtable_nameから名前を選択し、各名前を読み出して処理し、最後にカーソルをクローズして破棄します。

bannerAds