GOTO (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Base de données SQL dans Microsoft Fabric
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.
Conventions de la syntaxe 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.
Remarques
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
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)