GOTO 语句使 Transact-SQL 批处理的执行跳转到标签。不执行 GOTO 语句和标签之间的语句。使用下列语法定义标签名:
label_name:
尽量少使用 GOTO 语句。过多使用 GOTO 语句可能会使 Transact-SQL 批处理的逻辑难于理解。使用 GOTO 实现的逻辑几乎完全可以使用其它控制流语句实现。GOTO 最好用于跳出深层嵌套的控制流语句。
标签是 GOTO 的目标,它仅标识了跳转的目标。标签不隔离其前后的语句。执行标签前面语句的用户将跳过标签并执行标签后的语句。除非标签前面的语句本身是控制流语句(如 RETURN),这种情况才会发生。
下面为 GOTO 的示例:
IF (SELECT SYSTEM_USER()) = 'payroll'GOTO calculate_salary -- Other program code would appear here. -- When the IF statement evaluates to TRUE, the statements -- between the GOTO and the calculate_salary label are -- ignored. When the IF statement evaluates to FALSE the -- statements following the GOTO are executed. calculate_salary: -- Statements to calculate a salary would appear after the label.