À 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?

285
demandé sur Breeze 2010-02-19 23:12:42

8 réponses

c'est un Terminator de lot, vous pouvez toutefois le changer à tout ce que vous voulez alt text

260
répondu SQLMenace 2010-02-19 20:18:14

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.

249
répondu MicSim 2010-06-22 12:00:47

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 .

166
répondu tvanfosson 2010-02-19 20:13:18

GO n'est pas un mot-clé SQL.

c'est un séparateur de lots utilisé par les outils clients (comme les SSM) pour casser le script entier en lots

a répondu plusieurs fois... exemple 1

26
répondu gbn 2017-05-23 12:34:38

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
8
répondu Mykhailo Seniutovych 2017-04-19 08:41:05
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

5
répondu TonyP 2014-12-30 17:27:51

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.

0
répondu ANIL KUMAR 2018-08-29 19:03:20

Voici la magie du GO.

SELECT 'Go'
Go 10

syntaxe: GO INT (BatchNumber)

BatchNumber: Pas de temps s'est produite

semble simple, il pourrait vous conduire à Spaghetti si vous code plus profond.

-4
répondu Ragul 2017-07-17 09:47:17