MS SQL Studio में हर घंटे स्वचालित रूप से क्वेरी निष्पादित करें


13

मैं एक बड़े उद्यम में एक आवेदन का समर्थन करता हूं, मेरी एक भूमिका डेटा को साफ करने की है। एक क्वेरी है जिसे मुझे हर घंटे निष्पादित करने की आवश्यकता है, और मैं इसे स्वचालित करना चाहूंगा। संगठन नीतियों के कारण, मैं SQL सर्वर एजेंट नौकरियां नहीं बना सकता या स्कीमा को संशोधित नहीं कर सकता, मैं केवल डेटा में हेरफेर कर सकता हूं।

एक अंतहीन

WHILE(1=1)
BEGIN 
WAITFOR DELAY '01:00';
--do work
END

मेरे लिए काम करता है, लेकिन मैं एक perma- खुला कनेक्शन के बारे में सोचा।

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

क्या इस समस्या का कोई हल है?


1
क्या आप अपने पीसी पर Windows sceduler का उपयोग कर सकते हैं?
सिपुपी

12
किसी ऐसे व्यक्ति से पूछें जिसके पास आपके लिए इसे शेड्यूल करने की अनुमति है।
मिस्टर मागू

@sepupic यह मेरी अगली शोध भूमि है, अगर MS SS में कुछ भी मेरी मदद नहीं कर सकता है।
इवान कोशेलेव

मैं सहमत हूँ। मुझे अपने ग्राहक कंप्यूटर पर कोडिंग चल रहा है बहुत असहज महसूस होगा। क्या होगा यदि आपका पीसी दुर्घटनाग्रस्त हो गया, किसी ने इसे अनप्लग कर दिया आदि। मैंने ऐसे ही वातावरण में काम किया है, जहां एसक्यूएल जॉब्स ऐप टीमों के लिए उपलब्ध नहीं थे - क्योंकि हमारे पास ऑटो सर्वर या एप्लिकेशन सर्वर पर चलने वाले अन्य शेड्यूलिंग टूल का उपयोग करने का एक वैकल्पिक विकल्प था । कोशिश करें और पता करें कि अन्य निर्धारित कार्य कैसे प्रबंधित किए जाते हैं? SQL सर्वर रिपोर्टिंग सेवा का उपयोग करने के लिए एक और समाधान हो सकता है ? आदर्श नहीं मुझे पता है ...
टेरी सी

9
सही समाधान डीबीए में जाना है और उन्हें प्रति घंटा इस सफाई को चलाने के लिए SQL सर्वर एजेंट कार्य बनाना है। तो फिर तुम क्यों डेटाबेस है कि जरूरतों को "सफाई" इतनी बार और मिल में डेटा प्राप्त हो रहा पता लगाना है कि तय की।
alroc

जवाबों:


22

आपका मित्र sqlcmd (Microsoft Technet) है

  1. अपनी सफाई कार्य चलाने के लिए आवश्यक स्क्रिप्ट के साथ एक SQL फ़ाइल बनाएँ
  2. Sqlcmd.exe और किसी भी आवश्यक पैरामीटर के साथ स्क्रिप्ट चलाएँ
  3. Windows शेड्यूल किया गया कार्य बनाएँ और सभी आवश्यक पैरामीटर के साथ कमांड जोड़ें

उदाहरण के लिए

sqlcmd -d YOUR_DB -E -i YOUR_SCRIPT.SQL -o OUTPUTFILE.TXT 

सौभाग्य।


4
सुनिश्चित करें कि ये स्क्रिप्ट अनुसूचित टास्क के साथ कहीं उपयुक्त ऐप / टूल सर्वर पर डाले गए हैं न कि डेवलपमेंट कंप्यूटर पर।
GER

7

प्रश्नों को निष्पादित करने के लिए आपको प्रबंधन स्टूडियो की आवश्यकता नहीं है।

यदि आपके पास वास्तव में आपके लिए किसी नौकरी का समय निर्धारित करने का कोई विकल्प नहीं है, तो आपको hotluse के उत्तर में उल्लिखित sqlcmd को देखना चाहिए।

यदि आप एक ऐसे संस्करण पर हैं जहाँ वह समर्थित नहीं है (चूंकि आपने कोई संस्करण निर्दिष्ट नहीं किया है) तो वहाँ भी osql है जो एक कमांड लाइन क्लाइंट है, लेकिन उस टूल को हटा दिया गया है।

आप तब अपने इच्छित किसी भी शेड्यूलर का उपयोग करके एक कमांड शेड्यूल कर सकते हैं (उदाहरण के लिए विंडोज टास्क शेड्यूलर) और कुछ इस तरह से चलाएं:

OSQL -E -i c:\temp\dowork.sql

दस्तावेज़ीकरण पर एक नज़र डालें कि आपके पास सर्वर चयन और प्रमाणीकरण के लिए कौन से विकल्प हैं।


-1

"SQL सर्वर एजेंट" का उपयोग करना जो MS SQL स्टूडियो के भीतर पाया जाता है (ऑब्जेक्ट एक्सप्लोरर में, अपने सर्वर का विस्तार करें और यह सामान्य रूप से सूची के निचले भाग में होना चाहिए) शायद आपका सबसे अच्छा दांव है।

यह एक नौकरी बनाएगा जिसे परिभाषित अंतराल पर निष्पादित करने के लिए सेट किया जा सकता है। नौकरियां क्लाइंट के बजाय सर्वर पर सेवा के रूप में चलेंगी। इसका मतलब यह है कि यदि आपका क्लाइंट डिस्कनेक्ट करता है, तो यह अभी भी चलेगा, और यदि सर्वर को रिबूट किया गया है (अज्ञात कारण के लिए), तो आप इसे फिर से शुरू करने की आवश्यकता के बिना काम चलाते रहेंगे।

नकारात्मक पक्ष यह है कि आपको ऐसा करने में सक्षम होने के लिए एलिवेटेड एक्सेस अधिकारों की आवश्यकता होगी।


3
आपने शायद इस प्रश्न पर ध्यान नहीं दिया है: संगठन की नीतियों के कारण, मैं SQL Server एजेंट नौकरियां नहीं बना सकता [...]
एंड्री एम

@Andriy: यह अभी भी सही उत्तर है। हम लोगों को अपने संगठन की इच्छा के अनुसार आई टी काउंटर पर छाया करने में मदद नहीं करनी चाहिए।
डायलन नॉल

1
@DylanKnoll: ठीक है, मुझे लगता है कि यह उत्तर देने वाले के लिए ओपी की नीति का उल्लेख करने और इसकी मूर्खता के खिलाफ तर्क शामिल करने के लिए (उदाहरण के लिए, आपकी टिप्पणी की पंक्तियों के साथ कुछ), लेकिन "मदद नहीं" चाहिए? सुझाया और स्वीकृत विकल्प बहुत अत्याचारी नहीं दिखता है, इसलिए सिद्धांतों से चिपके रहना इस मामले में थोड़ा कठोर होगा।
एंड्री एम

मुझे आपकी बात अच्छी लगी, लेकिन डीबीए के नजरिए का क्या? बहुत लगता है जैसे कोई डीबी डिज़ाइन में गलतियों को छिपाने की कोशिश कर रहा है ताकि वे प्रकाश में न आएं।
डायलन नॉल

1
इसे "SQL सर्वर एजेंट नौकरियों" में बदलने से पहले "SQL सर्वर जॉब्स" पढ़ा। मुझे नहीं लगता कि बाद की तुलना में पूर्व का कोई और अर्थ हो सकता है। (यह ओपी नहीं था जिसने इसे संपादित किया; यह एक ऐसा व्यक्ति था जिसने थोड़ा त्रुटिपूर्ण शब्द को ठीक उसी तरह समझा जैसे मैंने किया था, और इसे ठीक कर दिया।) मूल शब्द, हालांकि, अनदेखी करना और भी आसान है। एक तरह से या किसी अन्य, मैं अभी भी बनाए रखता हूं कि आपकी तरफ एक नजर थी :)
एंड्री एम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.