RETURN
RETURN语句用于使程序从一个查询、存储过程或批量处理中无条件返回,其后面的语句不再执行。如果在存储过程中使用return语句,那么此语句可以指定返回给调用应用程序、批处理或过程的整数;如果没有为RETURN指定整数值,那么该存储过程将返回0。
语法
RETURN [整数表达式]
示例
结果如下:
RETURN后面的3-4都没打印,说明在当前批处理的RETURN后都没执行,而新起的BEGIN...END不受上面的RETURN影响,所以打印了5
GOTO
GOTO命令用来改变程序执行的流程,使程序跳转到标识符指定的程序行再继续往下执行。
GOTO命令虽然增加了程序设计的灵活性,但破坏了程序的结构化,使程序结构变得复杂而且难以测试。
注意:
- 语句标识符可以是数字或者字母的组合,但必须以":"结束。而在GOTO语句后的标识符不必带":"。
- GOTO语句和跳转标签可以在存储过程、批处理或语句块中的任何地方使用,但不能超出批处理的范围。
语法
GOTO 标识符
示例
结果如下:
从上面可以看出,当跳到ME的时候,GOTO之前的数有打印,之后的数就跳过了
WAITFOR
用于挂起语句的执行,直到指定的时间点或者指定的时间间隔。
注意:
WAITFOR常用语某个特定的时间点或时间间隔自动执行某些任务。在WAITFOR语句中不能包含打开游标,定义视图这样的操作。在包含事务的语句中不要使用WAITFOR语句,因为WAITFOR语句在时间点或时间间隔执行期间将一直拥有对象的锁,当事务中包含WAITFOR语句,事务的其他语句又需要访问被锁住的数据对象事就容易发生死锁现象。
指定时间点的语法
WAITFOR TIME <具体时间>
示例
在'08:10:00'执行打印字符串"SQL数据库开发"
如果你执行这句话,那如果在今天这个点之前,那么等到这个时候它就会打印字符串,如果在今天这个点之后,那你需要等到第二天的这个时间点才会打印。在未执行之前查询窗口是一直"正在执行查询..."状态
指定等待时间间隔的语法
WAITFOR DELAY 'INTERVAR'
INTERVAR为时间间隔,指定执行WAITFOR 语句之前需要等待的时间,最多为24小时。
示例
在等到3秒钟后,会打印出字符串
批注
流程控制是SQL开发中经常需要使用到的,特别是条件判断IF...ELSE,循环执行WHILE是经常使用的,对于想在SQL开发中有所提高的同学,务必要掌握这几个流程控制的用法。