Qual é o uso do GO no SQL Server Management Studio e no Transact SQL?

O SQL Server Management Studio sempre insere um comando GO quando eu crio uma consulta usando o botão direito do mouse no menu “Script As”. Por quê? O que o GO realmente faz?

É um terminador de lote, mas você pode alterá-lo para o que quiser texto alternativo

Desde o Management Studio 2005 parece que você pode usar o GO com um parâmetro int , como:

 INSERT INTO mytable DEFAULT VALUES GO 10 

O acima irá inserir 10 linhas na mytable . De um modo geral, o GO irá executar os comandos sql relacionados n vezes.

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

O comando GO é usado para agrupar comandos SQL em lotes enviados ao servidor juntos. Os comandos incluídos no lote, ou seja, o conjunto de comandos desde o último comando GO ou o início da session, devem ser logicamente consistentes. Por exemplo, você não pode definir uma variável em um lote e usá-la em outro, pois o escopo da variável é limitado ao lote no qual ela está definida.

Para obter mais informações, consulte http://msdn.microsoft.com/pt-br/library/ms188037.aspx .

GO não é uma palavra-chave SQL.

É um separador de lote usado por ferramentas do cliente (como o SSMS) para dividir todo o script em lotes

Respondido antes de várias vezes … exemplo 1

Apenas para adicionar as respostas existentes, quando você está criando visualizações, você deve separar esses comandos em lotes usando go , caso contrário, você obterá o erro 'CREATE VIEW' must be the only statement in the batch . Então, por exemplo, você não poderá 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 
 Use herDatabase GO ; 

Código diz para executar as instruções acima do marcador GO . Meu database padrão é myDatabase, então, em vez de usar myDatabase GO e faz a consulta atual para usar herDatabase

Go significa que quaisquer instruções SQL são 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 instruções antes do GO 1 irão para sql sever em um lote e, em seguida, quaisquer outras instruções antes do GO 2 irão para o sql server em outro lote. Então, como vemos, tem lotes separados.

Aqui está a mágica do GO.

 SELECT 'Go' Go 10 

SYNTAX: Go INT (BatchNumber)

Números de lote: não ocorreu de vez

Parece simples, pode levar você ao espaguete se você codificar mais fundo.