GO giống như phần cuối của một tập lệnh.
Bạn có thể có nhiều câu lệnh CREATE TABLE, được phân tách bằng GO. Đó là một cách để cô lập một phần của tập lệnh với phần khác, nhưng gửi tất cả vào một khối.
BEGIN và END giống như {và} trong C / ++ / #, Java, v.v.
Họ ràng buộc một khối mã logic. Tôi có xu hướng sử dụng BEGIN và END khi bắt đầu và kết thúc một quy trình được lưu trữ, nhưng nó không hoàn toàn cần thiết ở đó. Trường hợp cần thiết là vòng lặp và câu lệnh IF, v.v., nơi bạn cần nhiều hơn sau đó một bước ...
IF EXISTS (SELECT * FROM my_table WHERE id = @id)
BEGIN
INSERT INTO Log SELECT @id, 'deleted'
DELETE my_table WHERE id = @id
END