- 基本的なwhileループの構文:
DECLARE @counter INT = 1;
WHILE @counter <= 10
BEGIN
-- ループ内で実行するコードを記述
-- ループ内の処理が完了したら、カウンターをインクリメント
SET @counter = @counter + 1;
END;
上記の例では、@counter
という変数を使用して、ループのカウンターを初期化し、ループ内のコードが実行される間、カウンターをインクリメントしています。この例では、カウンターが1から10までの範囲でループします。
- テーブルのレコードを処理するwhileループの例:
DECLARE @id INT;
DECLARE @name VARCHAR(100);
DECLARE @tempTable TABLE (
ID INT,
Name VARCHAR(100)
);
INSERT INTO @tempTable (ID, Name)
VALUES (1, 'John'), (2, 'Jane'), (3, 'Alice');
DECLARE @rowCount INT = (SELECT COUNT(*) FROM @tempTable);
DECLARE @currentRow INT = 1;
WHILE @currentRow <= @rowCount
BEGIN
SELECT @id = ID, @name = Name
FROM @tempTable
WHERE ID = @currentRow;
-- レコードの処理を行うコードを記述
SET @currentRow = @currentRow + 1;
END;
上記の例では、@tempTable
という一時テーブルを作成し、その中のレコードをwhileループで処理しています。ループ内では、@id
と@name
という変数に現在のレコードの値を代入し、その後の処理で使用します。