Поиск…


замечания

Использование цикла WHILE или другого итеративного процесса обычно не является наиболее эффективным способом обработки данных в SQL Server.

Вы должны предпочесть использовать набор данных на основе данных для достижения тех же результатов, где это возможно

Использование цикла While

Цикл WHILE может использоваться как альтернатива CURSORS . В следующем примере будут напечатаны цифры от 0 до 99.

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

В то время как цикл с использованием агрегата min min

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