將執(zhí)行流變更到標(biāo)簽處。跳過 GOTO 之后的 Transact-SQL 語句,在標(biāo)簽處繼續(xù)處理。GOTO 語句和標(biāo)簽可在過程、批處理或語句塊中的任何位置使用。GOTO 語句可嵌套使用。
定義標(biāo)簽:
label :
改變執(zhí)行:
GOTO label
label
若有 GOTO 語句指向此標(biāo)簽,則其為處理的起點(diǎn)。標(biāo)簽必須符合標(biāo)識(shí)符規(guī)則。不論是否使用 GOTO 語句,標(biāo)簽均可作為注釋方法使用。
GOTO 可用在條件控制流語句、語句塊或過程中,但不可跳轉(zhuǎn)到批處理之外的標(biāo)簽處。GOTO 分支可跳轉(zhuǎn)到定義在 GOTO 之前或之后的標(biāo)簽處。
GOTO 語句的權(quán)限默認(rèn)情況下授予任何有效用戶。
下面給出用 GOTO 循環(huán)代替 WHILE 循環(huán)的示例。
說明 這里未定義 tnames_cursor 游標(biāo)。本例只用于演示。
相關(guān)文章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