Ils ne sont pas strictement requis - ce ne sont que des instructions pour que SQL Server Management Studio exécute les instructions jusqu'à présent, puis continue. GO
n'est pas un mot-clé T-SQL ou quoi que ce soit - c'est juste une instruction qui fonctionne dans SSMS.
Parfois, vous avez besoin d'un GO - par ex. si vous ajoutez une colonne à une table, puis souhaitez la sélectionner à nouveau, vous devez avoir un GO entre l'ajout de la colonne et sa requête.
Par exemple. si vous essayez de l'exécuter, vous obtiendrez des erreurs de SSMS :
ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5
Résultats en :
Le fait est que SSMS essaie de vérifier l'intégralité de l'instruction à la fois, mais sur l'instruction SELECT, il se plaindra du DateTimeStamp
manquant colonne.
ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
GO
SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5
Si vous mettez un GO
entre les deux instructions, cela fonctionnera, car SSMS n'analysera pas et ne vérifiera pas l'intégralité de l'instruction à l'avance - il effectuera la première partie, puis n'analysera que la seconde (après le GO
).
Mais à part des situations comme celle-ci, GO n'est presque jamais nécessaire.