Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर:क्या मुझे बैचों के बीच GO स्टेटमेंट का उपयोग करने की आवश्यकता है?

वे कड़ाई से आवश्यक नहीं हैं - वे केवल SQL सर्वर प्रबंधन स्टूडियो के लिए इस बिंदु तक के बयानों को निष्पादित करने के लिए निर्देश हैं और फिर चलते रहें। GO है नहीं एक टी-एसक्यूएल कीवर्ड या कुछ भी - यह सिर्फ एक निर्देश है जो एसएसएमएस में काम करता है।

कभी-कभी, आपको एक GO की आवश्यकता होती है - उदा। यदि आप किसी तालिका में एक कॉलम जोड़ते हैं, और फिर उसे फिर से चुनना चाहते हैं, तो आपको कॉलम जोड़ने और उसकी क्वेरी के बीच एक GO की आवश्यकता होगी।

उदा. यदि आप इसे निष्पादित करने का प्रयास करते हैं, तो आपको SSMS से त्रुटियाँ मिलेंगी:

ALTER TABLE (sometable) ADD DateTimeStamp DATETIME

SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5

इसमें परिणाम:

मुद्दा यह है:SSMS एक ही बार में पूरे स्टेटमेंट को सत्यापित करने का प्रयास कर रहा है, लेकिन SELECT स्टेटमेंट पर, यह लापता DateTimeStamp के बारे में शिकायत करेगा। कॉलम।

ALTER TABLE (sometable) ADD DateTimeStamp DATETIME
GO       

SELECT ID, DateTimeStamp FROM (sometable) WHERE ID > 5

अगर आप GO डालते हैं दो बयानों के बीच, यह काम करेगा, क्योंकि एसएसएमएस समय से पहले पूरे बयान को पार्स और सत्यापित नहीं करेगा - यह पहले भाग को करेगा, और उसके बाद केवल दूसरे को पार्स करेगा (GO के बाद) )।

लेकिन इस तरह की स्थितियों के अलावा, 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. वेब ऐप से क्वेरी टाइम आउट लेकिन प्रबंधन स्टूडियो से ठीक चलता है

  2. आप डेटाबेस में विरासत का प्रतिनिधित्व कैसे कर सकते हैं?

  3. जब कोई ट्रिगर टेबल पर हो तो OUTPUT क्लॉज के साथ UPDATE का उपयोग नहीं किया जा सकता

  4. टी-एसक्यूएल का उपयोग करके आरपीसी आउट को कैसे सक्षम करें

  5. SQL सर्वर, ML.NET और C# के साथ मशीन लर्निंग मॉडल बनाना