SQL Server Express संस्करण में कार्य कैसे बनाएँ


82

किसी को कृपया मुझे समझा सकते हैं कि कैसे SQL Server Expressसंस्करण में रोजगार बनाने के लिए ?


6
यदि आप SQL एजेंट नौकरियों की बात कर रहे हैं, तो वह कार्यक्षमता एक्सप्रेस संस्करण में उपलब्ध नहीं है। अन्य संभावनाओं के लिए इस प्रश्न का उत्तर देखें: stackoverflow.com/questions/3788583/…
8kb

एक्सप्रेस संस्करण एसक्यूएल सर्वर ब्रोकर का समर्थन करता है और आप यहाँ
लुकाज़ स्ज़ोज़ा

जवाबों:


123

SQL सर्वर एक्सप्रेस में SQL सर्वर एजेंट शामिल नहीं है , इसलिए यह संभव नहीं है कि केवल SQL एजेंट नौकरियां बनाएँ।

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

backup.bat:

sqlcmd -i backup.sql

backup.sql:

backup database TeamCity to disk = 'c:\backups\MyBackup.bak'

बस दोनों फाइलों को एक ही फोल्डर में डालें और विंडोज टास्क शेड्यूलर के जरिए बैच फाइल को एक्साइट करें।

पहली फाइल सिर्फ एक विंडोज बैच की फाइल है जो sqlcmd यूटिलिटी को कॉल करती है और SQL स्क्रिप्ट फाइल को पास करती है।
SQL स्क्रिप्ट फ़ाइल में T-SQL होता है। मेरे उदाहरण में, डेटाबेस को बैकअप करने के लिए यह सिर्फ एक लाइन है, लेकिन आप किसी भी टी-एसक्यूएल को अंदर रख सकते हैं। उदाहरण के लिए, आप UPDATEइसके बजाय कुछ क्वेरी कर सकते हैं ।


यदि आप जो नौकरियां बनाना चाहते हैं, वे बैकअप, इंडेक्स रखरखाव या अखंडता जांच के लिए हैं, तो आप ओला हल्लग्रेन द्वारा उत्कृष्ट रखरखाव समाधान का भी उपयोग कर सकते हैं ।

इसमें संग्रहीत कार्यविधियों (और SQL Server नौकरियों में गैर-एक्सप्रेस संस्करण SQL सर्वर के लिए) शामिल हैं, और अक्सर पूछे जाने वाले प्रश्न में SQL सर्वर एक्सप्रेस पर कार्य चलाने के बारे में एक खंड होता है:

SQL सर्वर एक्सप्रेस पर SQL सर्वर रखरखाव समाधान के साथ मुझे कैसे आरंभ करना चाहिए?

SQL सर्वर एक्सप्रेस में SQL सर्वर एजेंट नहीं है। इसलिए, संग्रहीत प्रक्रियाओं का निष्पादन cmd फ़ाइलों और Windows शेड्यूल किए गए कार्य का उपयोग करके निर्धारित किया जाना चाहिए। इन कदमों का अनुसरण करें।

SQL सर्वर एक्सप्रेस में SQL सर्वर एजेंट नहीं है। इसलिए, संग्रहीत प्रक्रियाओं का निष्पादन cmd फ़ाइलों और Windows शेड्यूल किए गए कार्य का उपयोग करके निर्धारित किया जाना चाहिए। इन कदमों का अनुसरण करें।

  1. रख-रखाव डाउनलोड करें।

  2. अनुरक्षण रखरखाव। एसक्यूएल। यह स्क्रिप्ट उन संग्रहीत प्रक्रियाओं को बनाता है जिनकी आपको आवश्यकता है।

  3. संग्रहीत प्रक्रियाओं को निष्पादित करने के लिए cmd फाइलें बनाएं; उदाहरण के लिए:
    sqlcmd -E -S। \ SQLEXPRESS -d मास्टर -Q "EXECUTE dbo.DatabaseBackup @Dat डेटाबेस = 'USER_DATABASES', @Directory / N'C: \ Backup ', @BackupType =' FULL '" -b -bo C: \ Log \ DatabaseBackup.txt

  4. विंडोज शेड्यूल किए गए कार्यों में, cmd फ़ाइलों को कॉल करने के लिए कार्य बनाएं।

  5. कार्यों को निर्धारित करें।

  6. कार्यों को शुरू करें और सत्यापित करें कि वे सफलतापूर्वक पूरा कर रहे हैं।


1
मुझे लॉगिन जानकारी कहाँ निर्दिष्ट करनी चाहिए?
हसनग

1
@ HasanGürsoy यदि आप एक निर्धारित कार्य बना रहे हैं जो SQLCMD (BAT फ़ाइल के साथ या w / आउट) चलाता है, तो मैं आपको Windows प्रमाणीकरण के लिए SQLCMD के "-E" पैरामीटर का उपयोग करने की सलाह दूंगा। उस कार्य के लिए, SQL सर्वर लॉगिन को परिभाषित करें, विंडोज़ उपयोगकर्ता के लिए जो आपके विंडोज़ शेड्यूल किए गए कार्य का स्वामी है। यदि यह स्पष्ट नहीं है कि कार्य के तहत कौन-सी विंडो लॉग इन करती है, तो "WHOAMI" (DOS कमांड) को BAT फ़ाइल में डालें और BAT फ़ाइल आउटपुट को कैप्चर करें, जो देखने के लिए निष्पादित होता है।
डग_इवीसन

@ HasanGürsoy या, SQL सर्वर प्रमाणीकरण के लिए, मैं विंडोज़ को निर्धारित कार्य (जहाँ अनुमतियाँ इसे पढ़ सकती हैं) में पासवर्ड डाल सकता हूँ, बजाय किसी फाइल में डालने के। यह BAT फाइल कमांड लाइन पर जाता है। यदि यह BAT फ़ाइल के लिए दिया जा रहा पहला पैरामीटर है, तो BAT फ़ाइल के भीतर आप उदाहरण के लिए SQLCMD लाइन पर इसे% 1 के रूप में संदर्भित कर सकते हैं।
डौग_विज़न

41

SQL Server एक्सप्रेस संस्करण में SQL एजेंट नौकरियां बनाने की कार्यक्षमता उपलब्ध नहीं है। एक विकल्प एक बैच फ़ाइल निष्पादित करने के लिए है जो विंडोज टास्क शेड्यूलर का उपयोग करके एक एसक्यूएल स्क्रिप्ट निष्पादित करता है।

ऐसा करने के लिए सबसे पहले sqljob.bat नाम से एक बैच फ़ाइल बनाएँ

sqlcmd -S servername -U username -P password -i <path of sqljob.sql>

बदलें servername, username, passwordऔर pathतुम्हारा साथ।

फिर sqljob.sql नाम से SQL स्क्रिप्ट फ़ाइल बनाएँ

USE [databasename]
--T-SQL commands go here
GO

[databasename]अपने डेटाबेस नाम के साथ बदलें । USEऔर GOआवश्यक है जब आप SQL स्क्रिप्ट लिखते हैं।

sqlcmdSQL स्क्रिप्ट निष्पादित करने के लिए एक कमांड-लाइन उपयोगिता है। इन दो फ़ाइलों को बनाने के बाद Windows टास्क शेड्यूलर का उपयोग करके बैच फ़ाइल को निष्पादित करें।

NB: इस सवाल के लिए पहले लगभग एक ही जवाब पोस्ट किया गया था। लेकिन मुझे लगा कि यह अधूरा है क्योंकि यह लॉगिन जानकारी के बारे में निर्दिष्ट नहीं है sqlcmd


मैं उस sqljob.sql को कहाँ बचाऊँगा? और जब मैं इसे निष्पादित करेगा तो मैं कैसे डाल सकता हूं?
डब्ल्यूटीएफज़ेन

1
@TFZane, इससे कोई फर्क नहीं पड़ता, जब तक कि बैच फ़ाइल निष्पादित हो रही है, से स्थान उपलब्ध है। (ऊपर की स्क्रिप्ट में, path of sqljob.sqlआपके द्वारा उपयोग किए जाने वाले स्थान को बदलें )। याद रखें कि *.sqlयहाँ एक फ़ाइल सिर्फ एक पाठ फ़ाइल से ज्यादा कुछ नहीं है।
हाबिल

16

SQL सर्वर एक्सप्रेस संस्करण कुछ मायनों में सीमित हैं - एक तरीका यह है कि उनके पास SQL ​​एजेंट नहीं है जो आपको नौकरियों को शेड्यूल करने की अनुमति देता है।

कुछ तीसरे पक्ष के एक्सटेंशन हैं जो उस क्षमता को प्रदान करते हैं - उदाहरण के लिए देखें:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.