Doogie Notes

覚え書き

SQL Server ストアドプロシージャのカーソル利用

<フェッチ項目を格納する変数の宣言>
DECLARE @COMPANY_CD               VARCHAR(4);
DECLARE @COMPANY_NM               VARCHAR(100);

<カーソルの宣言>
DECLARE CUR_COMPANY CURSOR
FOR
SELECT
    COMPANY_CD
,   COMPANY_NM
FROM
    COMPANY_MST
WHERE
    KBN = '1'
ORDER BY
    START_DATE
;

<カーソルオープン>
OPEN CUR_COMPANY;

<1件目をフェッチ>
FETCH NEXT FROM CUR_COMPANY
INTO @COMPANY_CD, @COMPANY_NM;

<カーソルループ>
WHILE @@FETCH_STATUS = 0
BEGIN
      ・
      ・
  <カーソルループ内の処理>
      ・
      ・
  <次のレコードをフェッチ>
    FETCH NEXT FROM CUR_COMPANY
	INTO @COMPANY_CD, @COMPANY_NM;
END;

<カーソルクローズ>
CLOSE CUR_COMPANY;
DEALLOCATE CUR_COMPANY;


【参考サイト】
qiita.com