SQL Server Management Studio จะแทรกคำสั่ง GO เสมอเมื่อฉันสร้างแบบสอบถามโดยใช้เมนู "Script As" คลิกขวา ทำไม? GO ทำอะไรจริง ๆ
SQL Server Management Studio จะแทรกคำสั่ง GO เสมอเมื่อฉันสร้างแบบสอบถามโดยใช้เมนู "Script As" คลิกขวา ทำไม? GO ทำอะไรจริง ๆ
คำตอบ:
มันเป็นตัวยุติแบทช์ แต่คุณสามารถเปลี่ยนเป็นอะไรก็ได้ที่คุณต้องการ
ตั้งแต่ Management Studio 2005 ดูเหมือนว่าคุณสามารถใช้GO
กับint
พารามิเตอร์เช่น:
INSERT INTO mytable DEFAULT VALUES
GO 10
mytable
ดังกล่าวข้างต้นจะแทรกเข้าไปใน 10 แถว โดยทั่วไปGO
จะดำเนินการตามคำสั่ง SQL ที่เกี่ยวข้องn
ครั้ง
คำสั่ง GO ไม่ใช่คำสั่ง Transact-SQL แต่เป็นคำสั่งพิเศษที่รู้จักโดยยูทิลิตี้ MS หลายตัวรวมถึงตัวแก้ไขโค้ด SQL Server Management Studio
คำสั่ง GO ใช้เพื่อจัดกลุ่มคำสั่ง SQL เป็นแบตช์ซึ่งส่งไปยังเซิร์ฟเวอร์ด้วยกัน คำสั่งที่รวมอยู่ในแบตช์นั่นคือชุดของคำสั่งตั้งแต่คำสั่ง GO ล่าสุดหรือการเริ่มต้นเซสชันต้องสอดคล้องกันอย่างมีเหตุผล ตัวอย่างเช่นคุณไม่สามารถกำหนดตัวแปรในชุดหนึ่งแล้วใช้อีกชุดหนึ่งได้เนื่องจากขอบเขตของตัวแปรนั้น จำกัด อยู่ที่ชุดที่กำหนดไว้
สำหรับข้อมูลเพิ่มเติมโปรดดูที่http://msdn.microsoft.com/en-us/library/ms188037.aspx
GO
ๆ ที่มีประโยชน์จริงในสถานการณ์ใด
GO ไม่ใช่คำหลัก SQL
เป็นตัวคั่นแบทช์ที่ใช้โดยเครื่องมือไคลเอ็นต์ (เช่น SSMS) เพื่อแยกสคริปต์ทั้งหมดออกเป็นแบทช์
ตอบก่อนหลายครั้ง ... ตัวอย่างที่ 1
เพียงเพื่อเพิ่มคำตอบที่มีอยู่เมื่อคุณกำลังสร้างมุมมองที่คุณต้องแยกคำสั่งเหล่านี้ออกเป็นชุดชุดโดยใช้มิฉะนั้นคุณจะได้รับข้อผิดพลาดgo
'CREATE VIEW' must be the only statement in the batch
ตัวอย่างเช่นคุณจะไม่สามารถรันสคริปต์ sql ต่อไปนี้ได้หากไม่มีgo
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 หมายความว่าคำสั่ง SQL ใด ๆ ที่ถูกเขียนไว้ก่อนหน้านี้และหลังจาก GO ก่อนหน้านี้จะไปที่เซิร์ฟเวอร์ SQL เพื่อประมวลผล
Select * from employees;
GO -- GO 1
update employees set empID=21 where empCode=123;
GO -- GO 2
ในตัวอย่างข้างต้นคำสั่งก่อน GO 1 จะไปที่ sql Sever ในแบทช์และคำสั่งอื่น ๆ ก่อนที่ GO 2 จะไปที่เซิร์ฟเวอร์ sql ในแบทช์อื่น ดังนั้นเราจึงเห็นว่ามันมีแบตช์ที่แยกจากกัน
Use herDatabase
GO ;
รหัสบอกว่าจะดำเนินการคำแนะนำด้านบนGO
เครื่องหมาย ฐานข้อมูลเริ่มต้นของฉันคือ myDatabase ดังนั้นแทนที่จะใช้myDatabase GO
และสร้างแบบสอบถามปัจจุบันเพื่อใช้ฐานข้อมูลของเธอ
นี่คือความมหัศจรรย์ของ GO
SELECT 'Go'
Go 10
SYNTAX: ไป INT(BatchNumber)
BatchNumber:ไม่มีครั้งเกิดขึ้น
ดูเรียบง่ายมันอาจนำคุณไปสู่สปาเก็ตตี้ถ้ารหัสลึก