Ricerca…


Osservazioni

L'utilizzo di un ciclo WHILE o altro processo iterativo non è in genere il modo più efficiente per elaborare i dati in SQL Server.

Si consiglia di utilizzare una query basata sui set sui dati per ottenere gli stessi risultati, ove possibile

Utilizzando il ciclo While

Il ciclo WHILE può essere utilizzato come alternativa ai CURSORS . L'esempio seguente stamperà numeri da 0 a 99.

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

Ciclo continuo con utilizzo della funzione di aggregazione minima

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow