Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर एजेंट (T-SQL) में अनुसूचियों की सूची प्राप्त करने के 4 तरीके

इस आलेख में, मैं SQL सर्वर एजेंट कार्य से जुड़े शेड्यूल को वापस करने के लिए T-SQL का उपयोग करने के लिए चार विकल्प प्रस्तुत करता हूं।

विकल्प

SQL सर्वर एजेंट कार्य के शेड्यूल को वापस करने के लिए आप निम्न T-SQL विकल्पों का उपयोग कर सकते हैं:

  • विकल्प 1 :sp_help_job निष्पादित करें संग्रहीत प्रक्रिया।
  • विकल्प 2 :sp_help_schedule निष्पादित करें संग्रहीत प्रक्रिया।
  • विकल्प 3 :sp_help_jobschedule निष्पादित करें संग्रहीत प्रक्रिया।
  • विकल्प 4 :sysschedules को क्वेरी करें तालिका (और इसके साथ जुड़ें sysjobschedules और sysjobs_view )

ये सभी विकल्प msdb . में मौजूद हैं डेटाबेस, और इसलिए उस डेटाबेस में चलाने की आवश्यकता है। आप msdb . पर स्विच करके ऐसा कर सकते हैं डेटाबेस पहले, या वस्तु को उचित रूप से अर्हता प्राप्त करके (उदा. msdb.dbo.sysschedules )।

विकल्प 1:sp_help_job संग्रहित प्रक्रिया

जब आप sp_help_job को कॉल करते हैं बिना किसी तर्क के, यह केवल नौकरियों की एक सूची देता है। लेकिन जब आप किसी नौकरी का नाम या आईडी पास करते हैं, तो वह उस नौकरी के विवरण को सूचीबद्ध करता है, जिसमें उसका शेड्यूल भी शामिल होता है।

यहां एक उदाहरण दिया गया है:

USE msdb;
EXEC sp_help_job 
	@job_name = 'SqlAgentTest';

परिणाम:

यह नौकरी, साथ ही किसी भी नौकरी के कदम, शेड्यूल और लक्ष्य सर्वर को सूचीबद्ध करता है। इस मामले में, नौकरी से जुड़ी दो अनुसूचियां हैं।

आईडी का उपयोग करते समय कोड का एक उदाहरण यहां दिया गया है:

EXEC sp_help_job 
	@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';

आईडी का उपयोग करते समय, आप चाहें तो पैरामीटर नाम को छोड़ सकते हैं।

उदाहरण:

EXEC sp_help_job '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';

वाक्यविन्यास

sp_help_job . का पूरा सिंटैक्स इस तरह जाता है:

sp_help_job { [ @job_id = ] job_id  
[ @job_name = ] 'job_name' }   
     [ , [ @job_aspect = ] 'job_aspect' ]   
     [ , [ @job_type = ] 'job_type' ]   
     [ , [ @owner_login_name = ] 'login_name' ]   
     [ , [ @subsystem = ] 'subsystem' ]   
     [ , [ @category_name = ] 'category' ]   
     [ , [ @enabled = ] enabled ]   
     [ , [ @execution_status = ] status ]   
     [ , [ @date_comparator = ] 'date_comparison' ]   
     [ , [ @date_created = ] date_created ]   
     [ , [ @date_last_modified = ] date_modified ]   
     [ , [ @description = ] 'description_pattern' ]

sp_help_job . के लिए Microsoft के दस्तावेज़ देखें प्रत्येक पैरामीटर के स्पष्टीकरण के लिए, साथ ही साथ प्रत्येक मान जो स्वीकार करता है।

विकल्प 2:sp_help_schedule संग्रहित प्रक्रिया

sp_help_schedule संग्रहीत कार्यविधि विशेष रूप से शेड्यूल वापस करने के लिए डिज़ाइन की गई है।

यदि आप बिना किसी तर्क के इसे निष्पादित करते हैं, तो यह उदाहरण में सभी शेड्यूल वापस कर देगा:

EXEC sp_help_schedule;

किसी विशिष्ट शेड्यूल की जानकारी प्राप्त करने के लिए, शेड्यूल का नाम या उसकी आईडी पास करें:

EXEC sp_help_schedule
	@schedule_name = 'Run_Sat_6AM';

हालांकि sp_help_schedule किसी विशिष्ट कार्य के लिए शेड्यूल वापस नहीं करता है, आप इसका उपयोग केवल उन शेड्यूल को वापस करने के लिए कर सकते हैं जो किसी कार्य से जुड़े हैं।

@attached_schedules_only पैरामीटर बिट . है , 0 . के डिफ़ॉल्ट के साथ , जिसका अर्थ है कि यह संलग्न और अनासक्त दोनों अनुसूचियों को लौटाता है। 1 . का मान पास करना इसे केवल संलग्न अनुसूचियों तक सीमित करता है।

उदाहरण:

EXEC sp_help_schedule
	@attached_schedules_only = 1;

एक और चीज जो आप कर सकते हैं वह है @include_description . का उपयोग करना परिणाम सेट में शेड्यूल के विवरण को शामिल करना है या नहीं, यह निर्दिष्ट करने के लिए पैरामीटर।

देखें sp_help_schedule . का उपयोग करना अधिक जानकारी और उदाहरणों के लिए SQL सर्वर में।

विकल्प 3:sp_help_jobschedule संग्रहित प्रक्रिया

sp_help_jobschedule संग्रहीत कार्यविधि नौकरियों के शेड्यूलिंग के बारे में जानकारी लौटाती है।

उदाहरण:

EXEC sp_help_jobschedule
	@job_name = 'SqlAgentTest';

यह शेड्यूल की एक सूची देता है जो निर्दिष्ट कार्य से जुड़ी होती है।

आप उस शेड्यूल को वापस करने के लिए शेड्यूल की आईडी या नाम भी पास कर सकते हैं।

जब आप sp_help_jobschedule . पर कॉल करते हैं , आपको या तो कार्य का नाम या उसकी आईडी (लेकिन दोनों नहीं), या शेड्यूल आईडी प्रदान करनी होगी। आप schedule_name . भी पास कर सकते हैं लेकिन केवल जॉब आईडी या उसके नाम के संयोजन में।

तर्कों का स्वीकृत संयोजन थोड़ा मुश्किल है। देखें sp_help_jobschedule . का उपयोग करना अधिक विस्तृत विवरण और अधिक उदाहरणों के लिए SQL सर्वर में।

विकल्प 4:sysschedules टेबल (और अन्य)

आप sysschedules . को क्वेरी कर सकते हैं तालिका बनाएं और इसे sysjobschedules . जैसी तालिकाओं के साथ जोड़ें और sysjobs_view नौकरियों और उनके संबंधित कार्यक्रमों की सूची वापस करने के लिए।

उदाहरण:

SELECT
	jv.name,
	jv.description,
	s.schedule_id,
	s.name,
	s.freq_type,
	s.freq_interval,
	s.freq_subday_type,
	s.freq_subday_interval,
	js.next_run_date,
	js.next_run_time
FROM msdb.dbo.sysjobs_view jv
INNER JOIN msdb.dbo.sysjobschedules js
ON jv.job_id = js.job_id
INNER JOIN msdb.dbo.sysschedules s
ON s.schedule_id = js.schedule_id
ORDER BY jv.name, s.name;

परिणाम:

इस मामले में मैंने केवल उन शेड्यूल को वापस करने के लिए इनर जॉइन का इस्तेमाल किया, जिनमें संबंधित नौकरी है और इसके विपरीत।

आप सभी शेड्यूल वापस करने के लिए राइट जॉइन पर स्विच कर सकते हैं, भले ही वे किसी जॉब से जुड़े हों, या लेफ्ट जॉइन सभी जॉब्स को वापस करने के लिए, भले ही उनका शेड्यूल अटैच हो। या आप सब कुछ वापस करने के लिए पूर्ण जुड़ाव का उपयोग कर सकते हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Microsoft SQL सर्वर प्रबंधन स्टूडियो प्राप्त करना और स्थापित करना

  2. SQL सर्वर:DELETE बनाम TRUNCATE

  3. SQL सर्वर में ON DELETE SET NULL विकल्प के साथ विदेशी कुंजी बाधा कैसे बनाएं - SQL सर्वर / TSQL ट्यूटोरियल भाग 81

  4. पंक्ति दर पंक्ति के बजाय एक बार में संपूर्ण डेटाटेबल को डेटाबेस में सम्मिलित करें?

  5. केस सेंसिटिव GROUP BY कैसे करें?