Partager via


GOTO (Transact-SQL)

Modifie le flux d'exécution vers une étiquette. Les instructions Transact-SQL faisant suite à une instruction GOTO sont ignorées et le traitement reprend à l'étiquette. Les instructions GOTO et les étiquettes peuvent être utilisées à n'importe quel endroit d'une procédure, d'un traitement d'instructions ou d'un bloc d'instructions. Les instructions GOTO peuvent être imbriquées.

Icône Lien de rubrique Conventions de la syntaxe de Transact-SQL

Syntaxe

Define the label: 
label : 
Alter the execution:
GOTO label 

Arguments

  • label
    Point après lequel le traitement reprend si une instruction GOTO pointe sur cette étiquette. Les étiquettes doivent se conformer aux règles en vigueur pour les identificateurs. Une étiquette peut servir à insérer des commentaires et ce, qu'il existe ou non une instruction GOTO.

Notes

Une instruction GOTO peut exister au sein d'instructions conditionnelles de contrôle de flux, de blocs d'instructions ou de procédures mais ne peut pas pointer sur une étiquette située en dehors du traitement d'instructions. Le branchement GOTO peut pointer sur une étiquette dont la définition se trouve avant ou après l'instruction GOTO.

Autorisations

Par défaut, tout utilisateur reconnu a l'autorisation d'utiliser l'instruction GOTO.

Exemples

L'exemple ci-dessous illustre l'utilisation de GOTO comme mécanisme de branche.

DECLARE @Counter int;
SET @Counter = 1;
WHILE @Counter < 10
BEGIN 
    SELECT @Counter
    SET @Counter = @Counter + 1
    IF @Counter = 4 GOTO Branch_One --Jumps to the first branch.
    IF @Counter = 5 GOTO Branch_Two  --This will never execute.
END
Branch_One:
    SELECT 'Jumping To Branch One.'
    GOTO Branch_Three; --This will prevent Branch_Two from executing.
Branch_Two:
    SELECT 'Jumping To Branch Two.'
Branch_Three:
    SELECT 'Jumping To Branch Three.'

Voir aussi

Référence

Langage de contrôle de flux (Transact-SQL)

BEGIN...END (Transact-SQL)

BREAK (Transact-SQL)

CONTINUE (Transact-SQL)

IF...ELSE (Transact-SQL)

WAITFOR (Transact-SQL)

WHILE (Transact-SQL)