DECLARE @Count int;
SET @Count=1;
WHILE @Count < 10
BEGIN
PRINT @Count;
SET @Count = @Count + 1
IF @Count = 4 GOTO Branch_ONE
IF @Count = 5 GOTO Branch_Two
END
Branch_ONE:
PRINT 'Jumping To Branch One'
GOTO Branch_Three;
Branch_TWO:
PRINT 'Jumping To Branch Two'
Branch_THREE:
PRINT 'Jumping To Branch Three'
------解决方案--------------------
将执行流更改到标签处。 跳过 GOTO 后面的 Transact-SQL 语句,并从标签位置继续处理。 GOTO 语句和标签可在过程、批处理或语句块中的任何位置使用。 GOTO 语句可嵌套使用。
IF @Count = 4 GOTO Branch_ONE 当@Count = 4 执行
Branch_ONE:
PRINT 'Jumping To Branch One'
GOTO Branch_Three;
然后再跳到Branch_Three执行。
不过不建议在SQL中这样跳来跳去。
------解决方案--------------------
建议少用GOTO语句
------解决方案--------------------
在执行到3之后就跳出WHILE循环了
------解决方案--------------------
GOTO 最合理的使用建议类似于程序开发时抛出异常一样, 譬如定义一个error标签,只要有错误就goto到error标签。