サーチ…


備考

WHILEループまたはその他の反復プロセスを使用するのは、通常、SQL Serverでデータを処理する最も効率的な方法ではありません。

可能であれば、同じ結果を得るために、データにセットベースのクエリを使用する方がよいでしょう

Whileループの使用

WHILEループはCURSORS代替として使用できます。次の例では、0から99までの数字が出力されます。

 DECLARE @i int = 0;
 WHILE(@i < 100)
 BEGIN
    PRINT @i;
    SET @i = @i+1
 END

while集約関数を使用したwhileループ

DECLARE @ID AS INT;

SET @ID = (SELECT MIN(ID) from TABLE);

WHILE @ID IS NOT NULL
BEGIN
    PRINT @ID;
    SET @ID = (SELECT MIN(ID) FROM TABLE WHERE ID > @ID);
END


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow