SQL सर्वर में, sp_help_jobschedule
संग्रहीत कार्यविधि नौकरियों के शेड्यूलिंग के बारे में जानकारी लौटाती है।
यह आलेख उदाहरणों सहित इस संग्रहीत कार्यविधि का एक सिंहावलोकन प्रदान करता है।
सिंटैक्स
आधिकारिक वाक्य रचना इस प्रकार है:
sp_help_jobschedule { [ @job_id = ] job_id | [ @job_name = ] 'job_name' }
[ , [ @schedule_name = ] 'schedule_name' ]
[ , [ @schedule_id = ] schedule_id ]
[ , [ @include_description = ] include_description ]
जब आप sp_help_jobschedule
. पर कॉल करते हैं , आपको या तो कार्य का नाम या उसकी आईडी (लेकिन दोनों नहीं), या शेड्यूल आईडी प्रदान करनी होगी। आप शेड्यूल का नाम भी पास कर सकते हैं लेकिन केवल जॉब आईडी या उसके नाम के संयोजन में।
स्वीकृत संयोजन थोड़ा मुश्किल है। मूल रूप से, यह इस प्रकार है:
अगर schedule_id
निर्दिष्ट है, न तो job_id
न ही job_name
निर्दिष्ट किया जा सकता है। अन्यथा, job_id
या job_name
पैरामीटर का उपयोग schedule_name
. के साथ किया जा सकता है ।
हालांकि, आप schedule_id
. का उपयोग नहीं कर पाएंगे यदि एक शेड्यूल एकाधिक कार्यों से जुड़ा हुआ है।
ध्यान दें कि sp_help_jobschedule
msdb . में है डेटाबेस, इसलिए इसे वहां से चलाने की जरूरत है। आप इसे msdb . पर स्विच करके या तो कर सकते हैं डेटाबेस (जैसे USE msdb
. के साथ) ), या डेटाबेस नाम और स्कीमा (यानी msdb.dbo.sp_help_jobschedule
के साथ प्रक्रिया को अर्हता प्राप्त करके) )।
उदाहरण
किसी विशिष्ट कार्य से जुड़ी सभी अनुसूचियों को वापस करने का तरीका प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:
EXEC sp_help_jobschedule
@job_name = 'SqlAgentTest';
परिणाम:
यह शेड्यूल की एक सूची देता है जो @job_name
. के साथ निर्दिष्ट कार्य से जुड़ी होती है तर्क।
वैकल्पिक रूप से, मैं @job_id
पास कर सकता था :
EXEC sp_help_jobschedule
@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';
लेकिन उस स्थिति में, मैं @job_name
. का उपयोग नहीं कर सका (यह या तो एक है या दूसरा)।
जॉब आईडी का उपयोग करते समय, यदि आप चाहें तो पैरामीटर नाम को छोड़ सकते हैं:
EXEC sp_help_jobschedule '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';
@schedule_id
का उपयोग करना पैरामीटर
आप वैकल्पिक रूप से इसकी आईडी के आधार पर शेड्यूल प्राप्त कर सकते हैं:
EXEC sp_help_jobschedule
@schedule_id = 15;
यह तब तक ठीक काम करता है जब तक शेड्यूल एकाधिक कार्यों से जुड़ा न हो।
यहां बताया गया है कि क्या होता है जब एक शेड्यूल कई कार्यों से जुड़ा होता है:
EXEC sp_help_jobschedule
@schedule_id = 14;
परिणाम:
Msg 14369, Level 16, State 1, Procedure sp_help_jobschedule, Line 69 [Batch Start Line 22] The schedule ID "14" is used by more than one job. Specify the job_id.
और भले ही यह job_id
. निर्दिष्ट करने के लिए कहता है , अगर आप ऐसा करते हैं, तो आपको schedule_id
. को हटाना होगा (जैसा कि बताया गया है, अगर आप schedule_id
. पास करते हैं , आप job_name
. शामिल नहीं कर सकते या job_id
)।
इसे प्रदर्शित करने के लिए, यदि मैं केवल job_id
. जोड़ दूं और schedule_id
रखें वहां, मुझे निम्न त्रुटि मिलती है।
EXEC sp_help_jobschedule
@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8',
@schedule_id = 14;
परिणाम:
Msg 14273, Level 16, State 1, Procedure sp_help_jobschedule, Line 51 [Batch Start Line 22] You must provide either @job_id or @job_name (and, optionally, @schedule_name), or @schedule_id.
विवरण शामिल करें
एक और चीज जो आप कर सकते हैं वह यह निर्दिष्ट करना है कि शेड्यूल के विवरण को शामिल करना है या नहीं।
डिफ़ॉल्ट रूप से, विवरण परिणाम सेट में शामिल नहीं होता है। दरअसल, schedule_description
कॉलम है शामिल है, लेकिन इसमें विवरण शामिल नहीं है, जब तक कि आप स्पष्ट रूप से इसका अनुरोध नहीं करते। यदि आप इसका अनुरोध नहीं करते हैं, तो schedule_description
कॉलम प्रदर्शित करता है (Description not requested.)
।
@include_description
पैरामीटर बिट . है , 0
. के डिफ़ॉल्ट के साथ , जिसका अर्थ है कि यह विवरण प्रदर्शित नहीं करता है। 1
. का मान पास करना विवरण में परिणाम प्रदर्शित किया जा रहा है।
EXEC sp_help_jobschedule
@job_name = 'SqlAgentTest',
@include_description = 1;