【转载】MSSQL中的 GOTO 语句
MSSQL中的 GOTO 语句
Goto语句是微软的SQL Server关系数据库提供了非常实用的编程控制语句,可以帮助开发人员实现复杂的逻辑控制。它有三种用法,分别是“跳转到指定标记”,“跳转到当前请求域”和“跳转到新请求域”。
Goto语句可用于提高存储过程、触发器和脚本的可读性,简化编程模型,减少冗余代码,实现数据库逻辑控制等。Goto语句有助于减少程序修改工作量,维护成本低,更加便捷安全。
Goto语句的最基本用法是跳转到指定标记:
GOTO x_label 一个查询 一个查询 一个查询 x_label: 一个查询 一个查询 一个查询
此示例将立即跳转到x_label标记。跳转到当前请求域的语句是:
GOTO x_block
此示例将立即跳转到当前请求域,而不需要特定的标记。最后,跳转到新请求域的语句是:
GOTO x_block x_block: 一个查询 一个查询 一个查询
上面的示例中通过引入一个新的请求域来条件跳转,也就是x_block。
通过使用goto语句,你可以根据开发的逻辑来轻松的创建复杂的存储过程和脚本。它可以很容易地帮助你构建微软SQL Server的更详细的、复杂的程序表达式,使你从复杂的嵌套循环中获得解脱……
总之,Goto语句是一种功能强大的控制语句,适用于微软SQL Server关系数据库,帮助开发人员简化编程任务,提高开发效率,且更加便捷安全。
注意点:
标签位置的代码不单单是跳转执行,程序自上往下正常运行时,到达标签处也会执行的,所以标签的代码作用如果用于错误判断或事务提交的话,通常会放在代码的末尾,比如:
OK1: COMMIT TRAN SELECT 0 RETURN ERR1: ROLLBACK TRAN SELECT -1 RETURN
上面代码通常放置存储过程的末尾,用于标签跳转。其中 OK1 是程序正常运行到末尾时会执行,其retrun 的作用 是避免 标签 ERR1被执行,因此,标签ERR1仅用于GOTO 跳转调用。
示例2:GOTO语句用于循环
DECLARE @X INT SELECT @X=1 Loving: PRINT @X SELECT @X=@X+1 WHILE @X<= 3 GOTO loving
示例3:利用GOTO语句求出从1加到5的总和
declare @sum int,@count int
select @sum=0,@count=1
label_1:
select @sum=@sum+@count
select @count=@count+1
if @count<=5
goto label_1
select @count @sum