2009-11-09 12 views
14

ट्रांजैक्ट-एसक्यूएल में, एक बैच एक साथ सबमिट किए गए SQL कथन का एक सेट है और एक समूह के रूप में निष्पादित किया जाता है, एक दूसरे के बाद। बैच कमांड फाइलों में संग्रहीत किया जा सकता है।बैच क्या है?

एक * .sql फ़ाइल जिसमें कई SQL कथन शामिल हैं, बैच माना जाता है? हम एक बैच पर और क्या विचार करते हैं?

+1

क्या यह प्रश्न केवल tsql से संबंधित है? होमवर्क की तरह थोड़ा गंध करता है ... –

+0

टैग देखें। TSQL। –

+3

यह होमवर्क नहीं है – carewithl

उत्तर

8

क्या एक * .sql फ़ाइल है जिसमें कई एसक्यूएल स्टेटमेंट्स हैं जो बैच मानते हैं?

क्रमबद्ध करें। एक * .sql फ़ाइल में वास्तव में कई बैच हो सकते हैं। आप बैच विभाजक के माध्यम से बैच को सीमित करते हैं। आपको फ़ाइल में कई बैचों की आवश्यकता हो सकती है क्योंकि कुछ कथन (विशेष रूप से कुछ "ALTER" कमांड) प्रति बैच में केवल एक बार निष्पादित किए जा सकते हैं। यह एक लूप मुश्किल में ALTERs प्रदर्शन करने जैसी चीज बना सकता है।

यहां एक और चाल यह है कि आप फ़ाइल/दस्तावेज़ में अलग-अलग बैचों को कैसे अलग करते हैं। 99% एसक्यूएल सर्वर टूल्स में, बैच सेपरेटर "GO" है। हालांकि, यह ऐसा कुछ है जो टूल द्वारा कॉन्फ़िगर करने योग्य है, और इसलिए आप अब अजीब व्यक्ति में भाग लेंगे और फिर कुछ और उपयोग करेगा।

+2

1) मुझे यकीन नहीं है कि मैं समझता हूं कि बैच क्यों एक अच्छी बात है (मुझे एहसास है कि कुछ बयानों को केवल एक बैच के बाद ही निष्पादित किया जा सकता है, लेकिन यदि बैचों मौजूद नहीं थे, तो हमें उस समस्या नहीं होगी), इस प्रकार एसक्यूएल सर्वर डेवलपमेंट टीम ने क्यों सोचा कि बैचों को पेश करना अच्छा विचार होगा ?! 2) इस तथ्य के अलावा कि कुछ बयानों को केवल एक बैच के बाद ही निष्पादित किया जा सकता है, क्या कोई अन्य कारण हैं कि हम उन्हें एक ही बैच में रखने के बजाय कई अलग-अलग बैचों में कथन का एक गुच्छा क्यों लगाएंगे? – carewithl

+2

बैच के अंत तक कुछ अन्य कथन (एसईटी विकल्प) लागू होंगे। मेरी मदद के लिए –

+1

thanx – carewithl

6

बैच टीएसक्यूएल का हिस्सा नहीं हैं, वे एसक्यूएल प्रबंधन स्टूडियो संपादक का एक कार्य हैं। इसलिए, उदाहरण के लिए, आप अपने कमांड टेक्स्ट के हिस्से के रूप में "जाओ" के साथ ADO.NET कमांड ऑब्जेक्ट सबमिट नहीं कर सकते हैं।

बैच मार्कर - "जाओ" क्वेरी संपादक को निष्पादन के दौरान आगे बढ़ने से पहले उस बिंदु तक SQL सबमिट करने के लिए कहता है।

"जाओ" के बगल में एक अलग बैच मार्कर का उपयोग करने के लिए क्वेरी संपादक को कॉन्फ़िगर करना संभव है, लेकिन यह सिर्फ लोगों से बिल्ली को भ्रमित कर देगा।

+1

वे टीएसक्यूएल का हिस्सा हैं। आप ADO.NET में कई आदेशों के साथ एक बैच भी भेज सकते हैं। – erikkallen

+1

मेरा मानना ​​है कि आप गलत हैं। यहां जाओ कमांड पर एक एमएसडीएन टीएसक्यूएल संदर्भ पृष्ठ है: http://msdn.microsoft.com/en-us/library/ms188037.aspx –

+1

दूसरे विचार पर, मुझे लगता है कि आपका क्या मतलब है। मूल प्रश्न में बैच परिभाषा सही है, और बैच टीएसक्यूएल कथन के निष्पादन को प्रभावित करते हैं। –

3

से पुस्तकें ऑनलाइन

डिफ़ॉल्ट बनाएं, समारोह बनाएँ, प्रक्रिया बनाएँ, नियम बनाएं, स्कीमा बनाएँ, ट्रिगर बनाना, और दृश्य कथन बनाएं एक बैच में अन्य विवरणों के साथ संयुक्त नहीं किया जा सकता। CREATE कथन बैच शुरू करना होगा। उस बैच में अनुसरण होने वाले सभी अन्य विवरणों को पहले CREATE कथन की परिभाषा के हिस्से के रूप में व्याख्या किया जाएगा।

एक तालिका को बदला नहीं जा सकता है और फिर उसी बैच में संदर्भित नए कॉलम।

इससे आप अनुमान लगा सकते हैं कि डेटाबेस संरचना में बदलावों को सुनिश्चित करने से पहले कई बैचों की आवश्यकता होती है।

संबंधित मुद्दे