SQL Server WHILE LOOP2025年3月17日 | 阅读 7 分钟 本文将向您介绍 SQL Server 中 WHILE 循环的完整概述。WHILE 循环是一种控制流语句,用于重复执行一组语句,直到满足指定条件为止。此循环以给定条件开始,对其进行评估,如果为 TRUE,则语句将进入循环以进一步执行。如果条件变为 FALSE,则不会执行。这意味着 SQL Server 中的 while 循环可以运行零次或多次。 WHILE 循环流程图下面的流程图将解释 SQL Server 中 WHILE 循环的完整工作流程。 ![]() 我们可以从这个图表中看到,在每次迭代中都会检查指定条件,并根据评估结果确定代码流。如果结果评估为 TRUE,则控制流将进入循环以进一步执行。如果评估结果为 FALSE,则控制流将退出循环,并执行循环外的任何语句或查询。 语法以下语法说明了 SQL Server 中的 WHILE 循环。 在此语法中,我们有以下参数或参数:
WHILE 循环示例让我们通过一个例子来理解 WHILE 循环在 SQL Server 中的工作原理。在给定的示例中,我们首先声明了一个整数类型的值并将其设置为 1。接下来,WHILE 循环检查条件,如果条件为TRUE,则打印 print 语句。当循环变为FALSE时,将打印 WHILE 循环之后的下一个语句。 执行此语句将返回以下输出: ![]() 在上面的 WHILE 循环代码片段中,我们必须在每次迭代后递增变量的值。参见上面代码行的下方部分:SET @stud_value = @stud_value + 1。如果我们不写此语句,循环将无限执行,因为它无法变为 FALSE。 无限 WHILE 循环当条件的评估永远不会为 false 时,就会发生无限循环。因此,循环永远不会结束,将永远执行。以下代码片段中的循环是无限的,因为变量的值没有递增。 执行循环将显示以下输出。此循环将永远不会结束执行,直到我们手动取消其查询执行。 ![]() 使用 WHILE 循环插入记录我们还可以使用 WHILE 循环将记录插入到定义的表中。让我们看看如何将虚拟记录插入数据库。首先,我们将创建一个名为'bikeshop'的表,其中包含三列:Id、bike_name和price。执行以下语句来创建此表: 接下来,我们将使用 WHILE 循环将十条记录插入此表中,执行以下脚本: 在此代码中,我们声明了一个变量 @count,然后使用 SET 子句将其值初始化为 1。接下来,我们必须定义循环体,它执行 INSERT 语句以在每次执行时添加一条记录。bike_name 列将 @count 变量的值与字符串Bike连接起来,而price列则由 @count 变量乘以5000的值确定。循环将一直执行,直到 @count 变量的值变为 FALSE。这意味着 WHILE 循环将执行十次,并将十条记录插入 bikeshop 表。 现在,我们可以使用 SELECT 语句验证 bikeshop 表的所有记录。它将显示以下输出: ![]() BREAK 语句SQL Server 还允许我们在 WHILE 循环中使用 BREAK 语句,就像在编程语言中一样。此语句用于立即停止循环的当前迭代,并将控制流恢复到循环之后的下一个语句。通常,我们将使用 IF...ELSE 语句 来检查条件是否发生。 以下示例将说明如何在 WHILE 循环中使用 BREAK 语句: 执行代码将显示以下输出: ![]() 在此代码中,首先评估变量的值。如果为 TRUE,则控制进入循环并打印语句。当变量值大于或等于 6 时,控制进入 IF...ELSE 块并执行 BREAK 语句以终止循环。如果 IF...ELSE 块未能满足条件;那么,循环将继续运行,直到条件变为 FALSE。 CONTINUE 语句SQL Server 还允许我们在 WHILE 循环中使用 CONTINUE 语句,就像在编程语言中一样。此语句会在满足指定条件时立即终止循环的当前执行,并将控制流返回到循环的开头。通常,IF...ELSE 语句将用于测试条件是否满足。 以下示例演示了 WHILE 循环中的 CONTINUE 语句。在此示例中,我们将假设使用 WHILE 循环来仅打印奇数值。可以使用 CONTINUE 语句来实现这一点。此示例将首先测试变量值是奇数还是偶数。如果为偶数,则执行进入 IF...ELSE 语句块,并将变量值减一。然后,它将执行 CONTINUE 语句并从头开始一个新的迭代。 执行代码片段将显示以下输出: ![]() 如何在 SQL Server 中使用 WHILE 循环实现分页?我们还可以使用 WHILE 循环来实现分页。分页允许在任何特定时间显示表中的记录子集。以下示例将解释此概念。代码中的 WHILE 循环一次将从 bikeshop 表中选择两条记录。然后将在输出中显示选定的记录。 执行代码片段将返回以下输出: ![]() 嵌套 WHILE 循环SQL Server 中的嵌套 WHILE 循环就是嵌套在另一个 WHILE 循环中的 WHILE 循环。当处理多层数据时,嵌套 WHILE 循环至关重要。因为此概念对于提取我们想要选择的层级数据非常有用,所以建议在使用嵌套循环时要小心。 语法 以下语法说明了 SQL Server 中嵌套 WHILE 循环的工作原理: 让我们一步一步地解释这个语法: 步骤 1: 循环开始检查第一个 WHILE 循环条件,如果找到 false 结果,它将退出 While 循环。否则,如果结果为 true,控制将进入 BEGIN 和 END 块以进行进一步执行。此块将启动第二个 WHILE 循环的执行。请参见步骤 2。 步骤 2: 此步骤将检查嵌套 WHILE 循环中的条件,如果为 false,则第二个循环将退出并执行此循环之外的语句。否则,如果结果为 true,控制将进入 BEGIN 和 END 块以进行进一步执行。 步骤 3: 一旦第二个 WHILE 循环中的所有语句都执行完毕,控制将返回到第一个 WHILE 循环并重复第一个步骤。 示例 以下示例将使用嵌套 WHILE 循环打印 5 的乘法表,直到 10。 执行语句将显示 5 的乘法表。输出如下: ![]() 结论当需要重复执行 SQL 脚本时,WHILE 循环是一种有用的方法。本文解释了如何在 MS SQL Server 中使用 WHILE 循环来执行记录插入和分页等操作,并提供了一个简单的示例。在这里,我们还学习了 BREAK 和 CONTINUE 语句来控制 WHILE 循环的迭代。 |
我们请求您订阅我们的新闻通讯以获取最新更新。