SQL Server Management Studio insère toujours une commande GO lorsque je crée une requête à l'aide du menu contextuel "Script en tant que". Pourquoi? Que fait réellement GO?
sql-server
tsql
ssms
tvanfosson
la source
la source
Réponses:
C'est un terminateur de lot, vous pouvez cependant le changer comme vous le souhaitez
la source
Depuis Management Studio 2005, il semble que vous pouvez utiliser
GO
avec unint
paramètre, comme:Ce qui précède insérera 10 lignes dans
mytable
. D'une manière générale,GO
exécutera les commandes sql associéesn
fois .la source
La commande GO n'est pas une instruction Transact-SQL, mais une commande spéciale reconnue par plusieurs utilitaires MS, y compris 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 de 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, puis l'utiliser 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 .
la source
GO
réellement utile?GO n'est pas un mot clé SQL.
C'est un séparateur de lots utilisé par les outils clients (comme SSMS) pour diviser le script entier en lots
Répondu plusieurs fois ... exemple 1
la source
Juste pour ajouter aux réponses existantes, lorsque vous créez des vues, vous devez séparer ces commandes en lots en utilisant
go
, sinon vous obtiendrez l'erreur'CREATE VIEW' must be the only statement in the batch
. Ainsi, par exemple, vous ne pourrez pas exécuter le script sql suivant sansgo
la source
Go signifie que, quelles que soient les instructions SQL écrites avant et après tout GO précédent, elles iront au serveur SQL pour traitement.
Dans l'exemple ci-dessus, les instructions avant GO 1 iront au serveur SQL dans un lot, puis toutes les autres instructions avant GO 2 iront au serveur SQL dans un autre lot. Donc, comme nous le voyons, il a séparé les lots.
la source
Le code dit d'exécuter les instructions au-dessus du
GO
marqueur. Ma base de données par défaut est myDatabase, donc au lieu d'utilisermyDatabase GO
et effectue la requête actuelle pour utiliser herDatabasela source
Voici la magie de GO.
SYNTAXE: Go INT
(BatchNumber)
Numéro de lot: aucune
Cela semble simple, cela pourrait vous conduire à Spaghetti si vous codez plus profondément.
la source