GO is als het einde van een script.
U kunt meerdere CREATE TABLE-instructies hebben, gescheiden door GO. Het is een manier om het ene deel van het script van het andere te isoleren, maar het allemaal in één blok in te dienen.
BEGIN en END zijn net als { en } in C/++/#, Java, enz.
Ze bonden een logisch codeblok vast. Ik heb de neiging om BEGIN en END te gebruiken aan het begin en einde van een opgeslagen procedure, maar het is daar niet strikt noodzakelijk. Waar het IS nodig is, zijn voor lussen, en IF-statements, enz., waar je meer dan één stap nodig hebt...
IF EXISTS (SELECT * FROM my_table WHERE id = @id)
BEGIN
INSERT INTO Log SELECT @id, 'deleted'
DELETE my_table WHERE id = @id
END