1、continue:
重新开始 WHILE 循环。在 CONTINUE 关键字之后的任何语句都将被忽略。
例子:计算1-10的偶数和
DECLARE @SUM INT, @I INT
SET @SUM=0
SET @I =1
WHILE (@I <=10)
BEGIN
IF (@I % 2 =1)
BEGIN
SET @I = @I +1
CONTINUE
END
ELSE
BEGIN
SET @SUM = @SUM +@I
SET @I = @I+1
END
END
PRINT '1-10的偶数和:' + CAST(@Sum as varchar(5))
GO
输出: 1-10的偶数和:30
其实这里的continue写不写出来的答案都是正确的。
2、break:
退出 WHILE 或 IF…ELSE 语句中最里面的循环。将执行出现在 END 关键字后面的任何语句,END 关键字为循环结束标记。IF 测试通常会启动 BREAK,但并不总是如此。
例子:遇到5就break了,退出了循环,所以输出值是5
DECLARE @I INT
SET @I =1
WHILE (@I <=10)
BEGIN
IF (@I=5)
BEGIN
BREAK
END
ELSE
BEGIN
SET @I = @I+1
END
END
PRINT '@I 的值:' + CAST(@I as varchar(5))
GO
输出:@I 的值:5
3、return
从查询或过程中无条件退出。可在任何时候用于从过程、批处理或语句块中退出。****RETURN 之后的语句是不执行的
例子:return后,在批处理里面的语句PRINT ‘@I 的值:’ + CAST(@I as varchar(5))都不输出了,只输出后面再批处理后面的print
DECLARE @I INT
SET @I =1
WHILE (@I <=10)
BEGIN
IF (@I=5)
BEGIN
RETURN
END
ELSE
BEGIN
SET @I = @I+1
END
END
PRINT '@I 的值:' + CAST(@I as varchar(5))
GO
PRINT '@@@@批处理后代码@@@@'
输出:@@@@批处理后代码@@@@