Quelle est la relation entre ';' / 'GO' / Transaction dans SQL Server

Je comprends bien la T-SQL Transaction, commence trans, et finalement rollback ou commit.

Cependant, quel est le niveau de traitement par lots? et que font ces opérateurs? ';' et 'GO'

Quelle est la relation entre les 3 termes?

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 un seul lot à SQL Server pour 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'parsing. Bien que T-SQL permette d'omettre les points-virgules dans la plupart des cas, les terminateurs d'instruction sont requirejs lorsque l'instruction suivante est un mot-key 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é.

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