SQL Server Continue 语句对于控制 While 循环的流程非常有用。通常,我们在 While 循环内部使用此 Continue 语句。如果执行在 While 循环内部遇到 Continue 语句,它将停止执行当前循环迭代并从头开始新的迭代。
如果我们在循环中有 15 条语句。我们希望在特定条件为 True 时跳过执行一些语句(语句 2 — 语句 6,以及语句 11 — 语句 14)。否则,它必须运行循环内的所有 15 条语句。在这种情况下,我们可以放置 IF ELSE 或 ELSE IF 来检查条件。并在 if 块内将 continue 语句放入 SQL Server 中。如果条件为 True,它将停止执行语句 2 到 6 和 11 到 14;否则,它将运行语句 1 到 15。
SQL Server Continue 语法
Continue 语句的语法是
CONTINUE;
SQL CONTINUE 语句示例
在此查询中,我们将在 While 循环内部使用 Continue 语句来控制循环迭代。
-- Example DECLARE @Val INT SET @Val = 1 WHILE @Val <= 10 BEGIN IF (@Val = 3 OR @Val = 7) BEGIN PRINT 'Skipped By Continue Statement = ' + CONVERT(VARCHAR, @Val) SET @Val= @Val + 1 CONTINUE END PRINT 'Tutorial Gateway Views = ' + CONVERT(VARCHAR, @Val) SET @Val= @Val + 1 END PRINT 'This statement is Coming from Outside the While Loop' GO

在此 continue 语句示例中,首先,我们创建了一个名为 @Val 的变量,并使用以下语句将其初始化为 10
DECLARE @Val INT SET @Val = 1
在 While 循环中,我们检查 @Val 是否小于 10 的条件。我建议您参考 While 循环文章以了解迭代过程。
WHILE @Val <= 10
在 While 循环内部,我们放置了 IF ELSE 来测试 @Val 是否等于 3 或 7 (IF (@Val = 3 OR @Val = 7))。如果条件为 false,它将跳过 Continue 语句并返回以下语句作为输出(在我们的例子中是 1、2、4、5、6、8、9、10)。您也可以尝试 ELSE IF 以获取更多条件。
PRINT 'Tutorial Gateway Views = ' + CONVERT(VARCHAR, @Val)
如果此条件为 True,则 SQL Server Continue 语句将执行。接下来,While 循环迭代将在该数字处停止(即 3 和 7),而不打印其他语句。为了更好地理解,我们将下面的 SQL Server 语句放在 If 块内部。因此,无论何时迭代中断,该值都将从此语句中打印出来。
PRINT 'Skipped By Continue Statement = ' + CONVERT(VARCHAR, @Val)
以下语句在 While 循环之外,与 While 循环中的表达式无关。这意味着,无论条件结果如何,此语句都将执行。
PRINT 'This statement is Coming from Outside the While Loop'