摘要:CREATE PROCEDURE CheckNumber @InputNumber INT AS BEGIN IF @InputNumber % 2 = 0 BEGIN PRINT CONCAT(@InputNumber, ' 是偶数'); END ELSE
在SQL Server存储过程中,可以使用`IF...ELSE`语句进行条件判断,使用`WHILE`循环来重复执行一段代码,以下是具体介绍:
### 条件判断 - **基本语法**:
**示例**:判断输入的数字是奇数还是偶数。
CREATE PROCEDURE CheckNumber @InputNumber INT AS BEGIN IF @InputNumber % 2 = 0 BEGIN PRINT CONCAT(@InputNumber, ' 是偶数'); END ELSE BEGIN PRINT CONCAT(@InputNumber, ' 是奇数'); END END ```
### 循环 **WHILE循环**:
**基本语法**:
WHILE 条件表达式 BEGIN -- 循环体,条件为真时重复执行的语句块 END
**示例**:计算从1到指定数字的累加和。
CREATE PROCEDURE CalculateSum @MaxNumber INT AS BEGIN DECLARE @Counter INT = 1; DECLARE @Sum INT = 0; WHILE @Counter
**游标循环**:当需要逐行处理查询结果集时,可以使用游标。基本步骤包括声明游标、打开游标、循环读取游标中的数据并进行处理,最后关闭和释放游标。
CREATE PROCEDURE ProcessUserData AS BEGIN DECLARE @UserID INT; DECLARE @UserName VARCHAR(50);
-- 声明游标 DECLARE user_cursor CURSOR FOR SELECT ID, Name FROM Users;
-- 打开游标 OPEN user_cursor;
-- 循环读取游标数据 FETCH NEXT FROM user_cursor INTO @UserID, @UserName; WHILE @@FETCH_STATUS = 0 BEGIN PRINT CONCAT('用户ID:', @UserID, ', 用户名:', @UserName); FETCH NEXT FROM user_cursor INTO @UserID, @UserName; END -- 关闭游标 CLOSE user_cursor;
-- 释放游标 DEALLOCATE user_cursor; END ```
### 循环中的条件判断 可以在循环内部使用条件判断语句,根据不同的条件执行不同的操作。例如,在循环中判断当前数字是否为素数:
CREATE PROCEDURE CheckPrimeNumbers @MaxNumber INT AS BEGIN DECLARE @Counter INT = 2; WHILE @Counter
来源:心平氣和