【Transact-SQL】WHILEでのループ処理 ALL 2023.06.092023.08.04 この記事は約2分で読めます。 基本コードシリーズになります。 今回はSQL構文の「WHILE句」を使う方法です。テーブルで処理するSQLにおいて、基本的にWHILE句を使用する場面は多くありません。しかしながら、使用頻度が少ない上にCURSORやFETCHといった、これまた使用頻度の少ない構文も組み合わせて使用する必要があるため、プログラムの基礎であるループでありながら忘れやすい構文でもあります。 目次 目次.やり方.コード例. 目次. やり方. WHILE構文を使用するには「CURSOR」を使用し、LISTやTABLEの行をフェッチし処理します。 フェッチとは、CPUの動作のうち、メモリから命令コード(インストラクション)を取り出してくる動作のこと。引用元:ZDNET – フェッチとは ※ここでの意味合いとしては、LISTやTABLEから行を[取り出す]という動作を表します。 DECLARE @EXAMPLE_LIST LISTDECLARE @COLUMN1 intDECLARE @COLUMN2 varchar(max)DECLARE EXAMPLE_CURSOR CURSOR FORSELECT EXAMPLE_COLUMN_1 ,EXAMPLE_COLUMN_2FROM @EXAMPLE_LISTOPEN HOGE_CURSORFETCH NEXT FROM HOGE_CURSOR INTO @COLUMN1, @COLUMN2WHILE @@FETCH_STATUS = 0BEGIN ~ここに処理~ FETCH NEXT FROM DELETE_CORSOR INTO @COLUMN1, @COLUMN2END コード例. DECLARE @HOGE_LIST LIST –ユーザー定義テーブルDECLARE @HOGE1 intDECLARE @HOGE2 varchar(max)DECLARE HOGE_CURSOR CURSOR FORSELECT HOGE1 ,HOGE2FROM @HOGE_LISTOPEN HOGE_CURSORFETCH NEXT FROM HOGE_CURSOR INTO @HOGE1, @HOGE2WHILE @@FETCH_STATUS = 0BEGIN ~ここに処理~ FETCH NEXT FROM DELETE_CORSOR INTO @HOGE1, @HOGE2END