7.3.2.5 WAITFOR 其语法如下: WAITFOR{ DELAY<时间’〉TME<时间’ ERROREXIT PROCESSEXIT MIRROREXIT) > WAITFOR命令用来暂时停止程序执行,直到所设定的 等待时间已过或所设定的时间已到才继续往下执行。 其中“时间必须为 DATETIME类型的数据,但不能包 括日期。 >各关键字含义如下: 1. DELAY:用来设定等待的时间,最多可达24小时 2.TME:用来设定等待结束的时间点 3. ERROREXIT:直到处理非正常中断 4. PROCESSEXIT:直到处理正常或非正常中断 5. MIRROREXI:直到镜像设备失败
返回 26 7.3.2.5 WAITFOR 其语法如下: WAITFOR {DELAY <‘时间’> | TIME <‘时间’> | ERROREXIT | PROCESSEXIT | MIRROREXIT} ➢WAITFOR 命令用来暂时停止程序执行,直到所设定的 等待时间已过或所设定的时间已到才继续往下执行。 ➢其中‘时间’必须为DATETIME 类型的数据,但不能包 括日期。 ➢各关键字含义如下: 1.DELAY:用来设定等待的时间,最多可达24 小时 2.TIME:用来设定等待结束的时间点 3.ERROREXIT:直到处理非正常中断 4.PROCESSEXIT:直到处理正常或非正常中断 5.MIRROREXI: 直到镜像设备失败
【例】等待1小时2分零3秒后才执行 seleeT 语句。 waitfor delay 01: 02: 032 select米 from employee
返回 27 【例】等待1 小时2 分零3 秒后才执行SELECT 语句。 waitfor delay ‘01:02:03’ select * from employee
7.3.2.6G0T0 语法如下: G0T0标识符 >G0T0命令用来改变程序执行的流程,使程序 跳到标有标识符的指定的程序行再继续往下执行。 >作为跳转目标的标识符可为数字与字符的组合。 但必须以“:”结尾。 在G0T0命令行,标识符后不必跟“:
返回 28 7.3.2.6 GOTO 语法如下: GOTO 标识符 ➢GOTO 命令用来改变程序执行的流程,使程序 跳到标有标识符的指定的程序行再继续往下执行。 ➢作为跳转目标的标识符可为数字与字符的组合。 但必须以“ : ”结尾。 ➢在GOTO 命令行,标识符后不必跟“ :
如:求1+2+3+.+10的总和。 DECLARE @S SMALLINT. @I SMALLINT SET @I=1 SET @S=0 BEG IF(@I<=10) BEGIN SET @S=@S+OI SET @I=@I+1 GOTO BEG END PRINT @S
返回 29 如:求1+2+3+…+10的总和。 DECLARE @S SMALLINT,@I SMALLINT SET @I=1 SET @S=0 BEG: IF (@I<=10) BEGIN SET @S=@S+@I SET @I=@I+1 GOTO BEG END PRINT @S
7.3.2.7 RETURN 程序执行成功 找不到对象 语法如下: 数据类型错误 RETURN([整数值]) -3 死锁 违反权限原则 > RETURN命令用于结束当前程-5语法错误 序的执行,返回到上一个调用|6 用户造成的一般错误 资源错误如磁盘空间不足 它的程序或其它程序。 非致命的内部错误 >在括号内可指定一个返回值。-9 已达到系统的极限 10-11致命的内部不一致性错误 >如果没有指定返回值,SQL-12表或指针破坏 Server系统会根据程序执行 13 数据库破坏 14 硬件错误 的结果返回一个内定值,如: >如果运行过程产生了多个错误, SQL Server系统将返 回绝对值最大的数值; 如果此时用户定义了返回值,则以返回用户定义的值。 RETURN语句不能返回NULL值
返回 30 7.3.2.7 RETURN 语法如下: RETURN ([整数值]) ➢RETURN 命令用于结束当前程 序的执行,返回到上一个调用 它的程序或其它程序。 ➢在括号内可指定一个返回值。 ➢如果没有指定返回值,SQL Server 系统会根据程序执行 的结果返回一个内定值,如: 0 程序执行成功 -1 找不到对象 -2 数据类型错误 -3 死锁 -4 违反权限原则 -5 语法错误 -6 用户造成的一般错误 -7 资源错误如磁盘空间不足 -8 非致命的内部错误 -9 已达到系统的极限 -10 -11 致命的内部不一致性错误 -12 表或指针破坏 -13 数据库破坏 -14 硬件错误 ➢如果运行过程产生了多个错误,SQL Server 系统将返 回绝对值最大的数值; ➢如果此时用户定义了返回值,则以返回用户定义的值。 RETURN 语句不能返回NULL值