मेरे पास स्क्रिप्ट का एक सेट है जिसे एक निश्चित क्रम में चलाने की आवश्यकता है। मैं एक "मास्टर फ़ाइल" बनाना चाहूंगा जो अन्य सभी फाइलों और उनके सही क्रम को सूचीबद्ध करती है। मूल रूप से C ++ या ASP / VBScript की फ़ाइल शामिल करें।
मेरे पास स्क्रिप्ट का एक सेट है जिसे एक निश्चित क्रम में चलाने की आवश्यकता है। मैं एक "मास्टर फ़ाइल" बनाना चाहूंगा जो अन्य सभी फाइलों और उनके सही क्रम को सूचीबद्ध करती है। मूल रूप से C ++ या ASP / VBScript की फ़ाइल शामिल करें।
जवाबों:
यदि आप SQLCMD का उपयोग कर रहे हैं , तो आप :r FileName
एक अलग .sql फ़ाइल शामिल करने के लिए उपयोग कर सकते हैं ।
: आर फाइलनाम
अतिरिक्त T-SQL स्टेटमेंट और SQLCMD कमांड को फ़ाइलनाम से निर्दिष्ट फ़ाइल से स्टेटमेंट कैश में दर्ज करता है। FileName विज़ुअल स्टूडियो के लिए स्टार्टअप निर्देशिका के सापेक्ष पढ़ा जाता है। बैच टर्मिनेटर के सामने आने के बाद फ़ाइल को पढ़ा और निष्पादित किया जाता है। आप एकाधिक: r कमांड जारी कर सकते हैं। फ़ाइल में किसी भी SQLCMD कमांड को शामिल किया जा सकता है, जिसमें उपकरण, विकल्प में परिभाषित बैच टर्मिनेटर भी शामिल है। आप उपयोग कर सकते हैं: अन्य लिपियों को शामिल करने के लिए पूर्व-परिनियोजन या परिनियोजन स्क्रिप्ट में r।
प्राचीन सी के संदर्भ में निश्चित रूप से पूर्वप्रकारों को नहीं
यदि आपके पास दिए गए पूर्ण पथों के साथ फ़ाइलों का एक सेट है, जिसे आप बिना शर्त क्रम में शामिल करना चाहते हैं, तो आप कमांड लाइन टूल sqlcmd का उपयोग कर सकते हैं या @ mfredrickson और @Marian द्वारा उल्लिखित sqlcmdmode में SSMS का उपयोग कर सकते हैं।
लेकिन यदि आप रिश्तेदार पथ या सशर्त चाहते हैं, तो आपको कुछ रैपर कॉलिंग का उपयोग करने की आवश्यकता है जिसमें sqlcmd (या इसके अपग्रेड किए गए पूर्ववर्तियों में से एक isql या osql) है।
वर्तमान में इस स्थिति में मेरी नौकरी पर, मैं पुराने vbs और hta कोड की समीक्षा कर रहा हूं। मैं पूरी तरह से खुश नहीं हूं, लेकिन यह एक व्यावहारिक निर्णय है। यह काम कर रहा है और अंतिम उपयोगकर्ता hta GUI के साथ घर पर है और कोई अतिरिक्त सॉफ़्टवेयर इंस्टॉलेशन की आवश्यकता नहीं है।
एक नए डिज़ाइन के लिए, मैं sqlcmd की कॉल को रैप करने के लिए WPF और PowerShell का उपयोग करने के बारे में सोचना शुरू करूँगा, लेकिन हमारे मौजूदा ग्राहकों के साथ मैं PowerShell V2 की उपस्थिति का अनुमान नहीं लगा सकता।
पूर्व के समय में भी हमने इस उद्देश्य के लिए सरल सीएमडी बैच लिखे, उनमें से कुछ अभी भी उपयोग में हैं।
मुझे लगता है कि वर्तमान उपकरण हैं, विशेष रूप से वर्कफ़्लो को लक्षित करने वाले, जो यहां उपयुक्त हो सकते हैं। मैं उन लोगों से परिचित नहीं हूँ।
प्रबंधन स्टूडियो में SQLCMD मोड के साथ , आप SQLCMD उपयोगिता का उपयोग करके अपनी सभी sql फ़ाइलों को व्यवस्थित करने और कॉल करने के लिए एक मास्टर फ़ाइल के रूप में उपयोग करने के लिए एक बैच फ़ाइल का भी उपयोग कर सकते हैं ।
SQLCMD मोड प्रबंधन स्टूडियो के अंदर उपयोगिता उपयोग का एक सिमुलेशन है, इसलिए मोड के बीच बड़ा अंतर नहीं है। सिवाय इसके कि कुछ समय के लिए मैं बैच चलाना पसंद करता हूं (एम स्टूडियो का अधिक उद्घाटन नहीं ... लोडिंग सही डीबी ... आदि)। मैं बैच में सब कुछ कॉन्फ़िगर करना पसंद करता हूं, जिसमें आउटपुट फाइलें भी शामिल हैं।
मैं मानता हूं, टी-एसक्यूएल प्रीप्रोसेसर की बुरी तरह से जरूरत है। मैंने C # में अपना एक विकसित किया, जिसने मुझे एक घंटे की तरह लिया। एसक्यूएल लिपियों के निष्पादन के आदेश पर नियंत्रण के अलावा, यह मुझे मैक्रोज़ की अनुमति देता है जो स्केलर यूडीएफ की तरह दिखते हैं और उपयोग करने के लिए सुविधाजनक हैं, लेकिन इनलाइन यूडीएफ के रूप में तेज़ प्रदर्शन करते हैं।
मुझे bernd_k का उत्तर पसंद है । यदि आपने अपनी स्क्रिप्ट का नाम कैसे दिया है, इस पर निर्भर करते हुए, यदि आप SQL Server 2008 या उच्चतर चला रहे थे, तो एक नंबर सहित SQL सर्वर पॉवरशेल (SQLPS) का उपयोग किया जा सकता है। तब भी यदि आप SQL 2005 का उपयोग कर रहे थे, तो आप 2005 के लिए PowerShell और SMO का उपयोग कर सकते थे।
साइड नोट: मेरा मानना है कि SQLCMD अंततः मूल्यह्रास सूची में डाल दिया जाएगा और इसे SQLPS, PowerShell के साथ बदल दिया जा रहा है।
कुछ अन्य विकल्प भी हैं।
SQLCMD
मुझे बताएं, क्योंकि अधिकांश l जो पॉवरशेल को संदर्भित करता है । मैं यह भी नहीं देख sqlcmd
सकता कि स्कीमा तुलना के लिए शायद सिवाय एसएसडीटी के साथ प्रयोग किया जाता है, लेकिन मैं उत्पन्न स्क्रिप्ट का उपयोग नहीं करता।