Nie są one bezwzględnie wymagane — są tylko instrukcjami dla SQL Server Management Studio, aby wykonać instrukcje do tego momentu, a następnie kontynuować. GO
jest nie słowo kluczowe T-SQL lub cokolwiek - to tylko instrukcja działająca w SSMS.
Czasami potrzebujesz GO – np. jeśli dodasz kolumnę do tabeli, a następnie chcesz ją ponownie wybrać, musisz mieć GO między dodaniem kolumny a zapytaniem o nią.
Np. jeśli spróbujesz to wykonać, otrzymasz błędy z SSMS:
ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5
Wyniki w:
Chodzi o to, że SSMS próbuje od razu zweryfikować całą instrukcję, ale na instrukcji SELECT będzie narzekać na brak DateTimeStamp
kolumna.
ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
GO
SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5
Jeśli umieścisz GO
między dwiema instrukcjami, to zadziała, ponieważ SSMS nie przeanalizuje i nie zweryfikuje całej instrukcji z wyprzedzeniem - wykona pierwszą część, a następnie przeanalizuje tylko drugą (po GO
).
Ale poza sytuacjami takimi jak ta, GO prawie nigdy nie jest wymagane.