Chúng không được yêu cầu nghiêm ngặt - chúng chỉ là hướng dẫn để SQL Server Management Studio thực thi các câu lệnh cho đến thời điểm này và sau đó tiếp tục. GO
không từ khóa T-SQL hoặc bất cứ thứ gì - đó chỉ là một lệnh hoạt động trong SSMS.
Đôi khi, bạn cần GO - ví dụ:nếu bạn thêm một cột vào bảng và sau đó muốn chọn lại nó, bạn cần phải ĐI giữa việc thêm cột và truy vấn nó.
Ví dụ. nếu bạn cố gắng thực thi điều này, bạn sẽ gặp lỗi từ SSMS:
ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5
Kết quả trong:
Vấn đề là:SSMS đang cố gắng xác minh toàn bộ câu lệnh cùng một lúc, nhưng trên câu lệnh SELECT, nó sẽ phàn nàn về việc thiếu DateTimeStamp
cột.
ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
GO
SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5
Nếu bạn đặt GO
giữa hai câu lệnh, nó sẽ hoạt động, vì SSMS sẽ không phân tích cú pháp và xác minh toàn bộ câu lệnh trước thời hạn - nó sẽ thực hiện phần đầu tiên và sau đó chỉ phân tích cú pháp phần thứ hai (sau GO
).
Nhưng khác với những tình huống như thế này, hầu như không bao giờ cần đến GO.