Recherche…


Remarques

L'utilisation d'une boucle WHILE ou d'un autre processus itératif n'est généralement pas le moyen le plus efficace de traiter des données dans SQL Server.

Vous devriez préférer utiliser une requête basée sur un ensemble sur les données pour obtenir les mêmes résultats, si possible

Utiliser la boucle While

La boucle WHILE peut être utilisée comme alternative aux CURSORS . L'exemple suivant imprimera les nombres de 0 à 99.

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

Pendant la boucle avec l'utilisation de la fonction d'agrégat 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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow