SQL सर्वर प्रबंधन स्टूडियो हमेशा एक GO कमांड सम्मिलित करता है जब मैं राइट क्लिक "स्क्रिप्ट एज़" मेनू का उपयोग करके एक क्वेरी बनाता हूं। क्यों? जीओ वास्तव में क्या करता है?
SQL सर्वर प्रबंधन स्टूडियो हमेशा एक GO कमांड सम्मिलित करता है जब मैं राइट क्लिक "स्क्रिप्ट एज़" मेनू का उपयोग करके एक क्वेरी बनाता हूं। क्यों? जीओ वास्तव में क्या करता है?
जवाबों:
यह एक बैच टर्मिनेटर है, लेकिन आप जो चाहें उसे बदल सकते हैं
GO कमांड एक Transact-SQL स्टेटमेंट नहीं है, लेकिन SQL सर्वर प्रबंधन स्टूडियो कोड संपादक सहित कई एमएस उपयोगिताओं द्वारा मान्यता प्राप्त एक विशेष कमांड है।
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
गो का मतलब है, जो भी SQL स्टेटमेंट्स उसके पहले और किसी भी GO से पहले लिखे गए हैं, प्रोसेसिंग के लिए SQL सर्वर पर जाएंगे।
Select * from employees;
GO -- GO 1
update employees set empID=21 where empCode=123;
GO -- GO 2
उपर्युक्त उदाहरण में, GO 1 से पहले के स्टेटमेंट एक बैच में sql से पहले जाएंगे और फिर GO 2 से पहले के किसी भी अन्य स्टेटमेंट से दूसरे बैच में sql सर्वर पर जाएंगे। इसलिए जैसा कि हम देखते हैं कि यह अलग हो गया है।
यहाँ जीओ का जादू है।
SELECT 'Go'
Go 10
SYNTAX: INT पर जाएं(BatchNumber)
बैचनंबर: कई बार नहीं हुआ
सरल लगता है, यदि आप गहरा कोड करते हैं , तो यह आपको स्पेगेटी तक ले जा सकता है ।