WHILE (SELECT AGE FROM dbo.STUDENT WHERENAME='Jame')<18 BEGIN UPDATE dbo.STUDENT SET AGE=AGE+1WHERENAME='Jame' END SELECT * FROM dbo.STUDENT WHERENAME='Jame'--查询检查结果
在WHILE中使用BREAK、CONTINUE
BREAK:退出循环,即推出当前循环,执行出现在END关键字后面的语句
CONTINUE:跳出本次循环,进行循环条件判断
示例:
1 2 3 4 5 6 7 8 9
WHILE (SELECT AGE FROM dbo.STUDENT WHERENAME='Jame')<30 BEGIN UPDATE dbo.STUDENT SET AGE=AGE+1WHERENAME='Jame' IF(SELECT AGE FROM dbo.STUDENT WHERENAME='Jame')<22 CONTINUE ELSE BREAK END SELECT * FROM dbo.STUDENT WHERENAME='Jame'
GOTO
将执行流更改到标签处,GOTO语句和标签可在过程、批处理或语句块中的任意位置使用
示例:
1 2 3 4 5 6 7 8 9 10
-- 使用GOTO语句循环出10到20之间的数字 DECLARE @N INT SET @N=10 LABEL: --标签名称要以冒号结束 IF @N<20 BEGIN SET @N=@N+1 PRINT @N GOTO LABEL --GOTO指定跳转的标签名称 END
使用GOTO语句实现循环
示例:
1 2 3 4 5 6 7 8
LABEL1: IF(SELECT AGE FROM dbo.STUDENT WHERENAME='Jame')<25 BEGIN UPDATE dbo.STUDENT SET AGE=AGE+1WHERENAME='Jame' GOTO LABEL1 END ELSE SELECT * FROM dbo.STUDENT WHERENAME='Jame'
WAITFOR
控制语句执行的时间
示例:
1 2 3 4 5 6 7 8 9 10
BEGIN WAITFOR TIME'16:52'--在几点开始执行,不能指定日期 SELECT * FROM dbo.STUDENT END
BEGIN WAITFOR DELAY '00:00:10'--多长时间后开始,最长为24小时,不能指定日期 SELECT * FROM dbo.STUDENT END