Qual é a utilização do GO no SQL Server Management Studio & Transact SQL?

o SQL Server Management Studio insere sempre um comando GO quando crio uma consulta com o menu "Script As" do botão direito. Por quê? O que vai realmente fazer?

Author: Breeze, 2010-02-19

8 answers

É um exterminador de lotes, você pode, no entanto, mudá - lo para o que quiser alt text

 260
Author: SQLMenace, 2010-02-19 20:18:14

Desde o Estúdio de gestão de 2005 parece que você pode usar GO com um parâmetro int, como:

INSERT INTO mytable DEFAULT VALUES
GO 10

O texto acima irá inserir 10 linhas em mytable. De um modo geral, GO irá executar os comandos SQL relacionados n vezes.

 249
Author: MicSim, 2010-06-22 12:00:47

O comando GO não é uma declaração Transact-SQL, mas um comando especial reconhecido por vários utilitários MS, incluindo o editor de código SQL Server Management Studio.

O comando GO é usado para agrupar comandos SQL em lotes que são enviados para o servidor em conjunto. Os comandos incluídos no lote, ou seja, o conjunto de comandos desde o último comando GO ou o início da sessão, devem ser logicamente consistentes. Por exemplo, você não pode definir uma variável em um lote e então usá - lo em outro, uma vez que o escopo da variável é limitado ao lote em que é definido.

Para mais informações, ver http://msdn.microsoft.com/en-us/library/ms188037.aspx.

 166
Author: tvanfosson, 2010-02-19 20:13:18

GO não é uma palavra-chave SQL.

É um separador de lotes usado pelas ferramentas do cliente (como o SSMS) para quebrar todo o programa em lotes

Respondeu várias vezes... Exemplo 1

 26
Author: gbn, 2017-05-23 12:34:38

Só para adicionar às respostas existentes, quando estiver a criar visualizações, deverá separar estes comandos em lotes usando go, caso contrário irá obter o erro 'CREATE VIEW' must be the only statement in the batch. Então, por exemplo, você não será capaz de executar o seguinte script sql sem 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
Author: Mykhailo Seniutovych, 2017-04-19 08:41:05
Use herDatabase
GO ; 

O código diz para executar as instruções acima do marcador GO. A minha base de dados por omissão é a myDatabase, por isso, em vez de usar myDatabase GO e faz a consulta actual para usar a herDatabase

 5
Author: TonyP, 2014-12-30 17:27:51

Go significa que, quaisquer que sejam as declarações SQL escritas antes e depois de qualquer GO anterior, irá para o servidor SQL para processamento.

Select * from employees;
GO    -- GO 1

update employees set empID=21 where empCode=123;
GO    -- GO 2

No exemplo acima, as declarações antes do GO 1 irão para o SQL sever em um lote e então quaisquer outras instruções antes do GO 2 irão para o servidor sql em outro lote. Então, como vemos, separou lotes.

 0
Author: ANIL KUMAR, 2018-08-29 19:03:20
Aqui está a magia do GO.
SELECT 'Go'
Go 10

Sintaxe: Go INT (BatchNumber)

Número de lotes: {[7] } nenhum dos tempos ocorreu

Parece simples, pode levar-te ao esparguete se codificares mais fundo.
 -4
Author: Ragul, 2017-07-17 09:47:17