Eles não são estritamente necessários - são apenas instruções para o SQL Server Management Studio executar as instruções até este ponto agora e continuar.
GO
é não uma palavra-chave T-SQL ou qualquer coisa - é apenas uma instrução que funciona no SSMS. Às vezes, você precisa de um GO - por exemplo, se você adicionar uma coluna a uma tabela e depois quiser selecioná-la novamente, você precisa ter um GO entre a adição da coluna e a consulta dela.
Por exemplo. se você tentar executar isso, receberá erros do SSMS:
ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5
Resulta em:
O ponto é:o SSMS está tentando verificar a instrução inteira de uma só vez, mas na instrução SELECT, ele reclamará da falta de
DateTimeStamp
coluna. ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
GO
SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5
Se você colocar um
GO
entre as duas instruções, funcionará, porque o SSMS não analisará e verificará a instrução inteira com antecedência - fará a primeira parte e analisará apenas a segunda (depois do GO
). Mas além de situações como esta, o GO quase nunca é necessário.