T-SQL का उपयोग करते समय, आप sp_add_schedule
. का उपयोग कर सकते हैं SQL सर्वर एजेंट शेड्यूल जोड़ने के लिए संग्रहीत कार्यविधि।
यह प्रक्रिया शेड्यूल बनाती है, लेकिन यह इसे किसी भी कार्य से नहीं जोड़ती है। इसे किसी कार्य से जोड़ने के लिए, आपको sp_attach_schedule
. का उपयोग करना होगा प्रक्रिया।
आप sp_add_jobschedule
. का भी उपयोग कर सकते हैं शेड्यूल बनाने और सभी को समान प्रक्रिया के साथ संलग्न करने के लिए।
sp_add_schedule
. का उदाहरण प्रक्रिया
यहां एक उदाहरण दिया गया है जो sp_add_schedule
. का उपयोग करता है एक नया शेड्यूल बनाने के लिए:
EXEC sp_add_schedule
@schedule_name = N'RunDailyAM',
@freq_type = 4,
@freq_interval = 4,
@active_start_time = 041000;
GO
यह संग्रहीत कार्यविधि मेरे द्वारा इस उदाहरण में शामिल किए गए तर्कों की तुलना में अधिक तर्क स्वीकार करती है, लेकिन ये कुछ अधिक सामान्य तर्क हैं। स्वीकृत मूल्यों की रूपरेखा के लिए नीचे दी गई तालिकाएं देखें।
@schedule_name
एक आवश्यक तर्क है, लेकिन अन्य वैकल्पिक हैं, और यदि आप उन्हें प्रदान नहीं करते हैं तो उनकी डिफ़ॉल्ट सेटिंग्स होती हैं।
अब हम sp_attach_schedule
. का उपयोग कर सकते हैं उस शेड्यूल को किसी मौजूदा नौकरी से जोड़ने के लिए:
EXEC sp_attach_schedule
@job_name = N'BackupPetHotelDB',
@schedule_name = N'RunDailyAM';
GO
जब आप sp_attach_schedule
. का उपयोग करते हैं , आपको कार्य का नाम या उसकी आईडी (लेकिन दोनों नहीं), साथ ही शेड्यूल नाम या आईडी (लेकिन दोनों नहीं) प्रदान करनी होगी।
sp_add_jobschedule
. का उदाहरण प्रक्रिया
यहां एक उदाहरण दिया गया है जो sp_add_jobschedule
. का उपयोग करता है एक नया शेड्यूल बनाने और उसे नौकरी से जोड़ने के लिए, सब कुछ एक ही बार में:
EXEC sp_add_jobschedule
@job_name = N'BackupMusicDB',
@name = N'Weekly_Sun_3AM',
@freq_type = 8,
@freq_interval = 1,
@freq_recurrence_factor = 1,
@active_start_time = 30000;
इस प्रक्रिया के साथ @job_name
तर्क कार्य का नाम और @name
. प्रदान करता है तर्क वह नाम प्रदान करता है जिसे आप शेड्यूल को देना चाहते हैं।
पैरामीटर मान
जिस तरह से शेड्यूल डेटा msdb . में संग्रहीत किया जाता है जब टी-एसक्यूएल के साथ शेड्यूलिंग जॉब की बात आती है तो डेटाबेस इसे थोड़ा मुश्किल बना देता है।
दिनांक/समय मान int . के रूप में संग्रहीत किए जाते हैं प्रकार। आवृत्ति प्रकार को int . के रूप में व्यक्त किया जाता है , जैसा कि अंतराल मान है, और कई अन्य विकल्प हैं।
ऊपर दिए गए उदाहरणों में दिए गए पैरामीटर के लिए स्वीकृत मानों का अवलोकन नीचे दिया गया है।
@freq_type
यह तर्क निर्दिष्ट करता है कि किसी कार्य को कब निष्पादित किया जाना है। यह निम्नलिखित मान स्वीकार करता है:
मान | <थ>विवरण|
---|---|
1 | एक बार |
4 | दैनिक |
8 | साप्ताहिक |
16 | मासिक |
32 | मासिक, freq_interval के सापेक्ष |
64 | SQL एजेंट सेवा प्रारंभ होने पर चलाएँ |
128 | कंप्यूटर के निष्क्रिय होने पर चलाएं |
@freq_interval
यह तर्क उन दिनों को निर्दिष्ट करता है जब किसी कार्य को निष्पादित किया जाता है।
यह तर्क @freq_type
. के मान पर निर्भर करता है तर्क, जैसा कि निम्न तालिका में बताया गया है:
freq_type का मान | freq_interval पर प्रभाव |
---|---|
1 (एक बार) | freq_interval अप्रयुक्त है। |
4 (दैनिक) | हर freq_interval दिन। |
8 (साप्ताहिक) | freq_interval निम्न में से एक या अधिक है (OR . के साथ संयुक्त) तार्किक ऑपरेटर):1 (रविवार) 2 (सोमवार) 4 (मंगलवार) 8 (बुधवार) 16 (गुरूवार) 32 (शुक्रवार) 64 (शनिवार) |
16 (मासिक) | freq_interval पर महीने का दिन। |
32 (मासिक रिश्तेदार) | freq_interval निम्नलिखित में से एक है:1 (रविवार) 2 (सोमवार) 3 (मंगलवार) 4 (बुधवार) 5 (गुरूवार) 6 (शुक्रवार) 7 (शनिवार) 8 (दिन) 9 (सप्ताहांत) 10 (सप्ताहांत का दिन) |
64 (जब SQLServerAgent सेवा प्रारंभ होती है) | freq_interval अप्रयुक्त है। |
128 | freq_interval अप्रयुक्त है। |
@freq_recurrence_factor
यह निर्धारित कार्य निष्पादन के बीच हफ्तों या महीनों की संख्या निर्दिष्ट करता है।
यह int . है , 0
. के डिफ़ॉल्ट के साथ , और इसका उपयोग केवल तभी किया जाता है जब freq_type
है 8
, 16
, या 32
।
@active_start_time
@active_start_date
. के बीच किसी भी दिन का समय निर्दिष्ट करता है और @active_end_date
किसी कार्य का निष्पादन प्रारंभ करने के लिए तर्क। @active_start_time
int . है , 000000
. के डिफ़ॉल्ट के साथ , जो 12:00:00 पूर्वाह्न को इंगित करता है। 24 घंटे की घड़ी पर, और एचएचएमएमएसएस फॉर्म का उपयोग करके दर्ज किया जाना चाहिए।
@active_start_date
हालांकि उपरोक्त मेरे उदाहरणों में शामिल नहीं है, @active_start_date
तर्क आपको उस तिथि को निर्दिष्ट करने की अनुमति देता है जिस पर किसी कार्य का निष्पादन शुरू हो सकता है। यह int . है , NULL के डिफ़ॉल्ट के साथ, जो आज की तारीख को इंगित करता है। दिनांक YYYYMMDD के रूप में स्वरूपित है।
@active_end_date
आप एक @active_end_date
भी प्रदान कर सकते हैं तर्क, जो उस तिथि को निर्दिष्ट करता है जिस पर किसी कार्य का निष्पादन रुक सकता है।
@active_end_date
int . है , 99991231
. के डिफ़ॉल्ट के साथ , जो 31 दिसंबर, 9999 को इंगित करता है। तिथि को YYYYMMDD के रूप में स्वरूपित किया गया है।
अधिक जानकारी
sp_add_schedule
. के लिए Microsoft के दस्तावेज़ देखें और/या माइक्रोसॉफ्ट के दस्तावेज़ sp_add_jobschedule
. के लिए विभिन्न तर्कों और उनके स्वीकृत मूल्यों के बारे में अधिक जानकारी के लिए।