For loop aún no es oficialmente compatible con el servidor SQL. Ya hay una respuesta para lograr las diferentes formas de FOR Loop. Estoy detallando la respuesta sobre formas de lograr diferentes tipos de bucles en el servidor SQL.
En bucle
DECLARE @cnt INT = 0;
WHILE @cnt < 10
BEGIN
PRINT 'Inside FOR LOOP';
SET @cnt = @cnt + 1;
END;
PRINT 'Done FOR LOOP';
Si lo sabe, debe completar la primera iteración del bucle de todos modos, entonces puede probar la versión DO..WHILE o REPEAT..UNTIL del servidor SQL.
HACER ... MIENTRAS
DECLARE @X INT=1;
WAY: --> Here the DO statement
PRINT @X;
SET @X += 1;
IF @X<=10 GOTO WAY;
REPETIR..UNTIL Loop
DECLARE @X INT = 1;
WAY: -- Here the REPEAT statement
PRINT @X;
SET @X += 1;
IFNOT(@X > 10) GOTO WAY;
Referencia