SQL Server Management Studio luôn chèn lệnh GO khi tôi tạo truy vấn bằng cách nhấp chuột phải vào menu "Script As". Tại sao? GO thực sự làm gì?
SQL Server Management Studio luôn chèn lệnh GO khi tôi tạo truy vấn bằng cách nhấp chuột phải vào menu "Script As". Tại sao? GO thực sự làm gì?
Câu trả lời:
Nó là một terminator, tuy nhiên bạn có thể thay đổi nó thành bất cứ điều gì bạn muốn
Lệnh GO không phải là câu lệnh Transact-SQL, mà là một lệnh đặc biệt được nhận biết bởi một số tiện ích MS bao gồm trình soạn thảo mã SQL Server Management Studio.
Lệnh GO được sử dụng để nhóm các lệnh SQL thành các lô được gửi đến máy chủ cùng nhau. Các lệnh được bao gồm trong lô, nghĩa là tập hợp các lệnh kể từ lệnh GO cuối cùng hoặc bắt đầu phiên, phải nhất quán về mặt logic. Ví dụ: bạn không thể xác định một biến trong một lô và sau đó sử dụng một biến khác vì phạm vi của biến được giới hạn trong lô mà nó được xác định.
Để biết thêm thông tin, hãy xem http://msdn.microsoft.com/en-us/l Library / ms188037.aspx .
GO
thực sự hữu ích?
GO không phải là một từ khóa SQL.
Đó là một trình phân tách lô được sử dụng bởi các công cụ máy khách (như SSMS) để chia toàn bộ tập lệnh thành các lô
Đã trả lời trước vài lần ... ví dụ 1
Chỉ cần thêm vào các câu trả lời hiện có, khi bạn đang tạo chế độ xem, bạn phải tách các lệnh này thành các lô bằng cách sử dụng go
, nếu không bạn sẽ gặp lỗi 'CREATE VIEW' must be the only statement in the batch
. Vì vậy, ví dụ, bạn sẽ không thể thực thi tập lệnh sql sau mà không cầngo
create view MyView1 as
select Id,Name from table1
go
create view MyView2 as
select Id,Name from table1
go
select * from MyView1
select * from MyView2
Go có nghĩa là, bất kỳ câu lệnh SQL nào được viết trước nó và sau bất kỳ GO nào trước đó, sẽ đến máy chủ SQL để xử lý.
Select * from employees;
GO -- GO 1
update employees set empID=21 where empCode=123;
GO -- GO 2
Trong ví dụ trên, các câu lệnh trước GO 1 sẽ chuyển đến sql sever trong một đợt và sau đó bất kỳ câu lệnh nào khác trước GO 2 sẽ chuyển đến máy chủ sql trong một đợt khác. Vì vậy, như chúng ta thấy nó đã tách các lô.
Đây là sự kỳ diệu của GO.
SELECT 'Go'
Go 10
Đồng bộ: Đi INT(BatchNumber)
Số lô: Không có lần nào xảy ra
Trông đơn giản, Nó có thể dẫn bạn đến Spaghetti nếu bạn viết mã sâu hơn.