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

SQL सर्वर एजेंट जॉब्स (T-SQL) की सूची वापस करने के 3 तरीके

अक्सर SQL सर्वर एजेंट नौकरियों की सूची प्राप्त करने का सबसे तेज़ तरीका SSMS ऑब्जेक्ट एक्सप्लोरर में SQL सर्वर एजेंट नोड का विस्तार करना है।

लेकिन यही एकमात्र तरीका नहीं है। और आपके परिवेश के आधार पर, यह एक विकल्प भी नहीं हो सकता है। यदि आपके पास SSMS या डेटाबेस टूल नहीं है जो आपको SQL सर्वर एजेंट जॉब देखने की अनुमति देता है, तो आपको इसके बजाय T-SQL का उपयोग करने की आवश्यकता हो सकती है।

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

विकल्प

टी-एसक्यूएल के साथ एसक्यूएल सर्वर एजेंट नौकरियों की सूची वापस करने के लिए आप निम्नलिखित विकल्पों का उपयोग कर सकते हैं:

  • विकल्प 1 :sp_help_job निष्पादित करें संग्रहीत प्रक्रिया।
  • विकल्प 2 :sysjobs_view से पूछताछ करें देखें।
  • विकल्प 3 :sysjobs से पूछताछ करें सीधे टेबल।

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

विकल्प 1:sp_help_job

sp_help_job का उपयोग करते समय SQL सर्वर एजेंट नौकरियों की सूची वापस करने के लिए, बस इसे बिना किसी तर्क के निष्पादित करें।

इस तरह:

USE msdb;
EXEC sp_help_job;

इस मामले में मैंने msdb . पर स्विच किया डेटाबेस पहले, जिसका अर्थ था कि मुझे डेटाबेस नाम और स्कीमा के साथ प्रक्रिया को पूरी तरह से अर्हता प्राप्त करने की आवश्यकता नहीं थी।

जब मैं अपने परीक्षण वातावरण में इसे निष्पादित करने के लिए SSMS का उपयोग करता हूं तो यह कैसा दिखता है:

एक विशिष्ट कार्य लौटाएं

आप उन नौकरियों में से किसी एक का विवरण वापस करने के लिए उसी संग्रहीत कार्यविधि का उपयोग कर सकते हैं। जब आप ऐसा करते हैं, तो आपको सभी नौकरियों को सूचीबद्ध करते समय मिलने वाली जानकारी की तुलना में बहुत अधिक विवरण मिलता है।

नौकरी का विवरण प्राप्त करने के लिए, आपको नौकरी का नाम या आईडी प्रदान करना होगा।

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

EXEC sp_help_job 
	@job_name = 'SqlAgentTest';

परिणाम:

यह कार्य, साथ ही किसी भी कार्य चरण, शेड्यूल और लक्षित सर्वरों को सूचीबद्ध करता है।

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

EXEC sp_help_job 
	@job_id = '343D9F2A-070A-4367-BF69-4248FFF57D70';

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

उदाहरण:

EXEC sp_help_job '343D9F2A-070A-4367-BF69-4248FFF57D70';

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

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:sysjobs_view देखें

आप sysjobs_view . का उपयोग कर सकते हैं SQL सर्वर एजेंट नौकरियों की सूची वापस करने के लिए।

उदाहरण:

SELECT * FROM msdb.dbo.sysjobs_view;

इस मामले में मैंने डेटाबेस और स्कीमा के साथ दृश्य नाम को योग्य बनाया।

यह दृश्य sp_help_job . पर सेट एक समान (लेकिन थोड़ा अलग) परिणाम देता है संग्रहीत प्रक्रिया जब बिना किसी तर्क के उपयोग की जाती है।

यदि आप कार्य विवरण जैसे चरण, शेड्यूल, आदि चाहते हैं, तो आपको इसे अन्य तालिकाओं के साथ जोड़ना होगा, जैसे कि sysjobsteps , sysjobschedules , sysjobactivity , sysjobhistory , आदि.

इसे sysjobsteps . के साथ जोड़ने का एक उदाहरण यहां दिया गया है तालिका:

SELECT
	jv.name,
	jv.description,
	jv.start_step_id,
	js.step_id,
	js.step_name
FROM msdb.dbo.sysjobs_view jv
LEFT JOIN msdb.dbo.sysjobsteps js
ON jv.job_id = js.job_id;

मेरे परीक्षण परिवेश में यह परिणाम है:

यह लेफ्ट जॉइन होने के कारण, इसमें ऐसे कार्य शामिल हैं जिनमें कोई चरण नहीं है (देखें NULL step_id . में और step_name नौकरी के लिए कॉलम TestJob . कहा जाता है )

इसे केवल चरणों वाले उन कार्यों तक सीमित करने के लिए, एक आंतरिक जुड़ाव का उपयोग करें।

विकल्प 3:sysjobs टेबल

सीधे sysjobs . पर जाने का एक उदाहरण यहां दिया गया है तालिका:

SELECT * FROM msdb.dbo.sysjobs;

जैसा कि देखा गया है, यदि आप कार्य विवरण जैसे चरण, शेड्यूल आदि चाहते हैं, तो आपको इसे अन्य तालिकाओं, जैसे sysjobsteps के साथ जोड़ना होगा , sysjobschedules , sysjobactivity , sysjobhistory , आदि.

आमतौर पर सीधे तालिका के बजाय दृश्य को क्वेरी करने की अनुशंसा की जाती है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पंक्ति 1, कॉलम 4 (वर्ष) के लिए बल्क लोड डेटा रूपांतरण त्रुटि (निर्दिष्ट कोडपेज के लिए बेमेल या अमान्य वर्ण टाइप करें)

  2. आपके व्यवसाय के लिए उपलब्ध शीर्ष डेटाबेस निगरानी विकल्प

  3. SQL सर्वर गुम अनुक्रमणिका

  4. SQL सर्वर में नेस्टेड केस स्टेटमेंट लॉजिक करने का सबसे अच्छा तरीका

  5. समूह दिनांक समय 5,15,30 और 60 मिनट के अंतराल में