Quelle est la différence entre ; et GO dans une procédure stockée dans SQL Server?
Quelle est la différence entre ;
et GO
dans une procédure stockée dans SQL Server ?
En fait, si j'ai une procédure stockée dans SQL server et que vous voulez mettre t requêtes distinctes à l'intérieur de laquelle le premier juste calcule le nombre d'enregistrements (le comte) et le second sélectionne certains enregistrements en fonction de certaines conditions, alors que dois-je utiliser entre deux requêtes?
Go
ou ;
source d'informationauteur odiseh | 2010-02-22
Vous devez vous connecter pour publier un commentaire.
; se termine juste en l'état.
ALLER n'est pas une affirmation mais une commande au serveur de commettre le lot actuel de la Base de données. Il crée un arrêt à l'intérieur de la transaction.
http://msdn.microsoft.com/en-us/library/ms188037.aspx
(Mise à jour, merci pour les commentaires):
Le GO est un énoncé destiné à la direction studio pour autant que je sais, peut-être à d'autres outils ainsi
Le point-virgule sépare des requêtes, de la commande ALLER sépare les lots. (Aussi ALLER n'est pas une commande T-SQL, c'est une commande reconnue par la sqlcmd et osql utilitaires et Management Studio.)
Vous ne pouvez pas utiliser d'ALLER à l'intérieur d'une procédure stockée. Si vous essayez, la définition de la procédure s'arrête, et le reste sera un lot distinct.
Une variable locale a le champ d'application de la lot, donc après une commande GO, vous ne pouvez pas utiliser les variables locales déclarées avant la commande:
ALLER n'est pas une commande pour le serveur, c'est le séparateur par défaut pour la plupart des outils client de la MS d'approvisionnement. Lorsque le client rencontre "ALLER" sur une nouvelle ligne, en soi, il envoie les commandes que il a accumulées à ce jour sur le serveur, puis recommence de nouveau.
Ce que cela signifie, c'est que toutes les variables déclarées dans un lot ne sont pas disponibles dans les lots suivants. Et cela signifie aussi que les commentaires multi-lignes ne peuvent pas être placés autour d'une "PASSER la commande" - parce que le serveur va voir le premier lot, et de voir un non commentaire.
Il marque la fin d'un lot dans l'Analyseur de Requêtes et
par conséquent, le signal de la fin d'une définition de la procédure stockée dans ce lot.
Autant que je sais que ce n'est pas une partie de la sp.
ALLER n'est pas un TSQL de commande.
; Et se termine juste en l'état.