2017-03-23 1 views

Répondre

1

GO n'est pas une instruction T-SQL. GO est un séparateur de lots utilisé par les outils et utilitaires SQL Server utilisés pour indiquer la fin d'un bloc d'instructions dans un script. Lorsqu'un GO est rencontré dans un script, les outils envoient le bloc d'instructions précédent en tant que lot unique à SQL Server pour l'exécution. Un point-virgule est l'élément de langage de terminaison d'instruction standard ANSI utilisé pour indiquer la fin d'une instruction SQL. Ces terminateurs facilitent l'analyse. Bien que T-SQL permette d'omettre les points-virgules dans la plupart des cas, les terminateurs d'instruction sont requis lorsque l'instruction suivante est un mot-clé plus récent, comme les expressions de table commune (introduites avec WITH). Omettre les terminateurs est déprécié de nos jours et prévu pour la rétrocompatibilité.

+0

Ok. donc le script sera divisé en morceaux (par 'allez' et ';') et envoyez-le au serveur sql exécutez-le un par un? – Xin

+0

@Xin. Correct. SQL Server ne verra que les lots individuels (sans le terminateur 'GO'). –

+0

si 'instruction1; statement2; statement3 statement4 go statement5', le serveur exécute [1 + 2 + 3 + 4] puis [5]; ou [1] [2] [3] [4,5]? Merci – Xin

1

; termine une déclaration. GO met fin à un lot de déclarations. ; est implicite et n'est pas vraiment nécessaire à moins d'exécuter certaines instructions comme MERGE, où son utilisation explicite est requise.