SQL Server Management Studio inserisce sempre un comando GO quando creo una query utilizzando il menu "Script come" facendo clic con il tasto destro. Perché? Cosa fa effettivamente GO?
SQL Server Management Studio inserisce sempre un comando GO quando creo una query utilizzando il menu "Script come" facendo clic con il tasto destro. Perché? Cosa fa effettivamente GO?
Risposte:
Si tratta di un terminatore batch, tuttavia è possibile modificarlo come desiderato
Il comando GO non è un'istruzione Transact-SQL, ma un comando speciale riconosciuto da diverse utility MS, incluso l'editor di codice di SQL Server Management Studio.
Il comando GO viene utilizzato per raggruppare i comandi SQL in batch che vengono inviati insieme al server. I comandi inclusi nel batch, ovvero l'insieme di comandi dall'ultimo comando GO o dall'inizio della sessione, devono essere logicamente coerenti. Ad esempio, non è possibile definire una variabile in un batch e quindi utilizzarla in un altro poiché l'ambito della variabile è limitato al batch in cui è definita.
Per ulteriori informazioni, vedere http://msdn.microsoft.com/en-us/library/ms188037.aspx .
GO
davvero utile raggruppare le cose ?
GO non è una parola chiave SQL.
È un separatore batch utilizzato dagli strumenti client (come SSMS) per suddividere l'intero script in batch
Prima risposta più volte ... esempio 1
Solo per aggiungere alle risposte esistenti, quando si creano viste è necessario separare questi comandi in batch utilizzando go
, altrimenti si otterrà l'errore 'CREATE VIEW' must be the only statement in the batch
. Quindi, per esempio, non sarai in grado di eseguire il seguente script sql senzago
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
Go significa, qualunque istruzione SQL sia stata scritta prima e dopo qualsiasi GO precedente, andrà al server SQL per l'elaborazione.
Select * from employees;
GO -- GO 1
update employees set empID=21 where empCode=123;
GO -- GO 2
Nell'esempio sopra, le istruzioni prima di GO 1 andranno a sql sever in un batch e quindi qualsiasi altra istruzione prima di GO 2 andrà al server sql in un altro batch. Quindi, come vediamo, ha lotti separati.
Ecco la magia di GO.
SELECT 'Go'
Go 10
SINTASSI: vai a INT(BatchNumber)
BatchNumber: numero di volte verificato
Sembra semplice, potrebbe portarti a Spaghetti se digiti più a fondo.