Цикл for официально еще не поддерживается сервером SQL. Уже есть ответ на достижение ЗА Loop разными способами. Я подробно излагаю ответ о способах достижения различных типов циклов в SQL-сервере.
Для петли
DECLARE @cnt INT = 0;
WHILE @cnt < 10
BEGIN
PRINT 'Inside FOR LOOP';
SET @cnt = @cnt + 1;
END;
PRINT 'Done FOR LOOP';
Если вы знаете, вам все равно нужно завершить первую итерацию цикла, тогда вы можете попробовать DO..WHILE или REPEAT..UNTIL версию SQL Server .
DO..WHILE Loop
DECLARE @X INT=1;
WAY: --> Here the DO statement
PRINT @X;
SET @X += 1;
IF @X<=10 GOTO WAY;
ПОВТОРИТЬ .. ДО КОНЦА
DECLARE @X INT = 1;
WAY: -- Here the REPEAT statement
PRINT @X;
SET @X += 1;
IFNOT(@X > 10) GOTO WAY;
Ссылка