SQL Server Management Studio insère toujours une commande GO lorsque je crée une requête en utilisant le menu de clic droit "script As". Pourquoi ? Que fait réellement la commande GO ?
Gbn, faites-le SELECT et regardez ce qui se passe :-)
SQL Server Management Studio insère toujours une commande GO lorsque je crée une requête en utilisant le menu de clic droit "script As". Pourquoi ? Que fait réellement la commande GO ?
Merci ! Mais alors, quel est l'intérêt de la déclaration GO ? Cela peut paraître stupide, mais que signifie "lot de code" ? msdn dit après GO que la durée de vie des variables expire. Cela n'a rien à voir avec l'engagement de la transaction, n'est-ce pas ? Y a-t-il des circonstances où je devrais garder l'instruction GO dans mes scripts ?
Il signifie que tous les T-SQL qui le précèdent seront exécutés "en une fois". D'après ce que je comprends, il est interchangeable avec un point-virgule (OLEDB/Oracle). Par exemple, si vous avez un grand post-déploiement script, une déclaration GO entre les lignes peut aider la mémoire utilisée dans le script.
Que voulez-vous dire par "commandes sql connexes" ? S'agit-il de la commande ci-dessus ? Toutes les commandes ci-dessus ? Les commandes ci-dessus jusqu'au GO précédent s'il y en a un ?
La commande GO n'est pas une instruction Transact-SQL, mais une commande spéciale reconnue par plusieurs utilitaires MS, dont l'éditeur de code SQL Server Management Studio.
La commande GO est utilisée pour regrouper les commandes SQL en lots qui sont envoyés ensemble au serveur. Les commandes incluses dans le lot, c'est-à-dire l'ensemble des commandes depuis la dernière commande GO ou le début de la session, doivent être logiquement cohérentes. Par exemple, vous ne pouvez pas définir une variable dans un lot et l'utiliser ensuite dans un autre, car la portée de la variable est limitée au lot dans lequel elle est définie.
Pour plus d'informations, voir http://msdn.microsoft.com/en-us/library/ms188037.aspx .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
39 votes
@ChrisF -- ce n'est pas un doublon, bien que la réponse acceptée réponde également à cette question. Cette question concerne l'utilisation de "GO" dans une transaction - il s'avère simplement que ce n'est pas vraiment une commande SQL. Cette question est beaucoup plus générale et tente de fournir une réponse définitive aux questions concernant la commande GO dans SSMS.
4 votes
Jetez également un coup d'œil à ce lien : À quoi servent les déclarations de mise en lots ?
0 votes
Documentation Microsoft : Déclarations des utilitaires du serveur SQL - GO : Le lot précédant GO sera exécuté le nombre de fois spécifié.