Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server:Tôi có cần sử dụng câu lệnh GO giữa các lô không?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CHỌN hàng có thời gian từ 30 phút trở xuống?

  2. Cách lấy danh sách các Bảng không có Ràng buộc khóa chính trong tất cả Cơ sở dữ liệu của Phiên bản SQL Server - Hướng dẫn SQL Server / TSQL Phần 62

  3. 4 cách để kiểm tra xem một bảng có tồn tại hay không trước khi loại bỏ nó trong SQL Server (T-SQL)

  4. Hiểu về Giám sát hiệu suất máy chủ SQL dựa trên đám mây

  5. Thời gian chờ của truy vấn SQL Server tùy thuộc vào mệnh đề Where