À quoi sert GO dans SQL Server Management Studio & Transact SQL?
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? Ce qui ne va réellement le faire?
8 réponses
c'est un Terminator de lot, vous pouvez toutefois le changer à tout ce que vous voulez
depuis Management Studio 2005 il semble que vous pouvez utiliser GO
avec un paramètre int
, comme:
INSERT INTO mytable DEFAULT VALUES
GO 10
insérer 10 lignes dans mytable
. En général, GO
exécutera les commandes sql n
times.
la commande GO n'est pas une instruction Transact-SQL, mais une commande spéciale reconnue par plusieurs utilitaires MS dont SQL Server Management Studio Code editor.
la commande GO est utilisée pour grouper les commandes SQL en lots qui sont envoyés au serveur ensemble. 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 le lot et ensuite l'utiliser dans un autre puisque la portée de la variable est limitée au lot dans lequel elle est définie.
pour en savoir plus, lisez http://msdn.microsoft.com/en-us/library/ms188037.aspx .
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 sans go
create view MyView1 as
select Id,Name from table1
go
create view MyView2 as
select Id,Name from table1
go
select * from MyView1
select * from MyView2
Use herDatabase
GO ;
Le Code indique d'exécuter les instructions au-dessus du marqueur GO
.
Ma base de données par défaut est myDatabase, donc au lieu d'utiliser myDatabase GO
et fait requête courante pour utiliser herDatabase
Go signifie que, quelles que soient les déclarations SQL écrites avant et après tout GO antérieur, elles seront traitées par SQL server.
Select * from employees;
GO -- GO 1
update employees set empID=21 where empCode=123;
GO -- GO 2
dans l'exemple ci-dessus, les déclarations avant GO 1 iront à sql sever dans un lot et ensuite toutes les autres déclarations avant GO 2 iront à sql server dans un autre lot. Donc, comme nous le voyons, il a par lots séparés.