将执行流变更到标签处。跳过 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