Transact-SQL 参考

GOTO

将执行流变更到标签处。跳过 GOTO 之后的 Transact-SQL 语句,在标签处继续处理。GOTO 语句和标签可在过程、批处理或语句块中的任何位置使用。GOTO 语句可嵌套使用。

语法

定义标签:

    label :

改变执行:

    GOTO label

参数

label

若有 GOTO 语句指向此标签,则其为处理的起点。标签必须符合标识符规则。不论是否使用 GOTO 语句,标签均可作为注释方法使用。

注释

GOTO 可用在条件控制流语句、语句块或过程中,但不可跳转到批处理之外的标签处。GOTO 分支可跳转到定义在 GOTO 之前或之后的标签处。

权限

GOTO 语句的权限默认情况下授予任何有效用户。

示例

下面给出用 GOTO 循环代替 WHILE 循环的示例。

说明  这里未定义 tnames_cursor 游标。本例只用于演示。

USE pubs
GO
DECLARE @tablename sysname
SET @tablename = N'authors'
table_loop:
   IF (@@FETCH_STATUS <> -2)
   BEGIN   
      SELECT @tablename = RTRIM(UPPER(@tablename)) 
      EXEC ("SELECT """ + @tablename + """ = COUNT(*) FROM " 
            + @tablename )
      PRINT " "
   END
   FETCH NEXT FROM tnames_cursor INTO @tablename
IF (@@FETCH_STATUS <> -1) GOTO table_loop
GO

请参见

BEGIN...END

BREAK

CONTINUE

控制流语言

IF...ELSE

WAITFOR

使用标识符

WHILE