GO
não é realmente um comando T-SQL. O GO
O comando foi introduzido pelas ferramentas da Microsoft como uma maneira de separar instruções em lote, como o final de um procedimento armazenado. GO
é suportado pelas ferramentas de pilha do Microsoft SQL, mas não faz parte formalmente de outras ferramentas. Você não pode colocar um
GO
em uma string de SQL e enviá-lo como parte de um objeto de comando ADO.NET, pois o próprio SQL não entende o termo. Outra maneira de demonstrar isso é com o criador de perfil:configure algumas instruções que usam GO
no Query Analyzer/Management Studio e, em seguida, execute o criador de perfil ao executar. Você verá que eles são emitidos como comandos separados para o servidor. O ponto e vírgula é usado para significar o fim de uma instrução em si, não necessariamente um lote inteiro.
http://msdn.microsoft.com/en-us/library/ms188037 .aspx