Utilisation de GOTO

Avec l'instruction GOTO, l'exécution d'un traitement Transact-SQL passe directement à une étiquette. Aucune instruction figurant entre l'instruction GOTO et l'étiquette n'est exécutée. Le nom de l'étiquette est défini par la syntaxe suivante :

        label_name:
      

Utilisez l'instruction GOTO avec parcimonie. Une utilisation excessive de GOTO peut compliquer la logique d'un traitement Transact-SQL. La logique mise en œuvre avec GOTO peut presque toujours faire appel aux autres instructions de contrôle de flux. Il est préférable d'utiliser GOTO pour sortir d'instructions de contrôle de flux dont la structure est particulièrement complexe.

L'étiquette qui est la cible de GOTO ne désigne que la destination du saut. L'étiquette n'isole pas les instructions qui la suivent des instructions qui la précèdent immédiatement. Tout utilisateur exécutant les instructions précédant immédiatement l'étiquette atteindra directement les instructions qui suivent l'étiquette et les exécutera. Ceci se produit systématiquement à moins que l'instruction précédant immédiatement l'étiquette ne soit elle-même une instruction de contrôle de flux, comme RETURN.

Voici un exemple d'instruction GOTO :

IF (SELECT SYSTEM_USER()) = 'payroll'
   GOTO calculate_salary
-- Other program code would appear here.
-- When the IF statement evaluates to TRUE, the statements
-- between the GOTO and the calculate_salary label are
-- ignored. When the IF statement evaluates to FALSE the
-- statements following the GOTO are executed.
calculate_salary:
   -- Statements to calculate a salary would appear after the label.

Voir aussi

Référence