TSQL中for循环的语法是什么?


当前回答

这个怎么样:

BEGIN
   Do Something
END
GO 10

... 当然,如果需要计数,可以在其中放入增量计数器。

其他回答

这个怎么样:

BEGIN
   Do Something
END
GO 10

... 当然,如果需要计数,可以在其中放入增量计数器。

没有for循环,只有while循环:

DECLARE @i int = 0

WHILE @i < 20
BEGIN
    SET @i = @i + 1
    /* do some work */
END

简单的答案是否定的!!

在SQL中没有FOR,但是你可以使用WHILE或GOTO来实现 FOR的工作方式。

而:

DECLARE @a INT = 10

WHILE @a <= 20
BEGIN
    PRINT @a
    SET @a = @a + 1
END

转到:

DECLARE @a INT = 10
a:
PRINT @a
SET @a = @a + 1
IF @a < = 20
BEGIN
    GOTO a
END

我总是更喜欢WHILE而不是GOTO语句。

SQL server还没有正式支持For循环。已经有了实现FOR Loop的不同方法的答案。我正在详细回答如何在SQL server中实现不同类型的循环。

FOR循环

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。

做. . WHILE循环

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;

参考

DECLARE @intFlag INT
SET @intFlag = 1
WHILE (@intFlag <=5) 
BEGIN
    PRINT @intFlag
    SET @intFlag = @intFlag + 1
END
GO