Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server :dois-je utiliser des instructions GO entre les lots ?

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.