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

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

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

विकल्प

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

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

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

विकल्प 1:sp_help_job

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

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

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:sp_help_jobstep

sp_help_jobstep संग्रहीत प्रक्रिया विशेष रूप से नौकरी के चरणों को वापस करने के लिए डिज़ाइन की गई है। लेकिन यह सब लौट आता है।

इसलिए यदि आप कोई भी शेड्यूल और लक्ष्य सर्वर सामग्री आदि नहीं देखना चाहते हैं, तो यह वही हो सकता है जिसकी आप तलाश कर रहे हैं।

आप sp_help_jobstep pass पास कर सकते हैं नौकरी का नाम या उसकी आईडी (लेकिन दोनों नहीं)।

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

EXEC sp_help_jobstep
	@job_name = 'SqlAgentTest';

और दो-चरणीय कार्य पर परिणाम कैसा दिखता है:

यदि आप केवल एक विशिष्ट चरण को वापस करना चाहते हैं तो आप एक चरण आईडी भी निर्दिष्ट कर सकते हैं। आपको अभी भी निर्दिष्ट करना होगा कि यह किस काम के लिए है (या तो इसकी आईडी या नाम के साथ)।

नौकरी में दूसरा चरण निर्दिष्ट करने का एक उदाहरण यहां दिया गया है:

EXEC sp_help_jobstep
	@job_name = 'SqlAgentTest', 
	@step_id = 2;

उस कार्य के लिए चरण आईडी वास्तव में मौजूद होना चाहिए। उदाहरण के लिए, 3 . की एक चरण आईडी निर्दिष्ट करना उपरोक्त कार्य के परिणामस्वरूप त्रुटि होती है।

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

एक अन्य विकल्प sysjobsteps . के विरुद्ध क्वेरी चलाना है टेबल।

इस तालिका में सभी कार्यों के चरण हैं, इसलिए यदि आप केवल किसी विशिष्ट कार्य के लिए चरण चाहते हैं, तो आपको कार्य आईडी पास करने की आवश्यकता होगी।

यहां sysjobsteps को क्वेरी करने का एक उदाहरण दिया गया है किसी विशिष्ट कार्य के चरणों के लिए तालिका:

SELECT * FROM msdb.dbo.sysjobsteps
WHERE job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';

यह sp_help_jobstep . के समान परिणाम देता है प्रक्रिया।

यदि आप चाहते हैं कि नौकरी के कुछ विवरण लौटाए जाएं (जैसे कि उसका नाम), तो आप sysjobsteps के बीच एक जॉइन चला सकते हैं और sysjobs_view

उदाहरण:

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 . कहा जाता है )

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर डेटाबेस में प्राथमिक कुंजी बाधा वाले सभी टेबल कैसे प्राप्त करें - SQL सर्वर / TSQL ट्यूटोरियल 57

  2. तालिका नाम और तालिका के स्कीमा के साथ SQL सर्वर डेटाबेस में सभी ट्रिगर्स को सूचीबद्ध करने की आवश्यकता है

  3. SQL सर्वर 2014 वर्कलोड के लिए अनुशंसित इंटेल प्रोसेसर

  4. SQL सर्वर संग्रहीत प्रक्रिया में सरणी पास करना

  5. Windows सेवा और SQL सर्वर का उपयोग करके OneWay WCF संदेशों में कतारबद्ध करना