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

SQL सर्वर एजेंट कार्य संशोधित करें (T-SQL)

SQL सर्वर में, आप sp_update_job . का उपयोग कर सकते हैं मौजूदा SQL सर्वर एजेंट कार्य को संशोधित करने के लिए संग्रहीत कार्यविधि।

उदाहरण

इस उदाहरण में, हम एक जॉब बनाते हैं, फिर हम sp_update_job . का उपयोग करते हैं उस कार्य को संशोधित करने के लिए।

नौकरी बनाएं

सबसे पहले, नौकरी बनाएं:

USE msdb;  
GO  
EXEC sp_add_job  
    @job_name = N'BakMovies',
    @description = N'Backup the Movies database.',
    @category_name = 'Database Maintenance';
GO  
EXEC sp_add_jobstep  
    @job_name = N'BakMovies',  
    @step_name = N'Run the backup',  
    @subsystem = N'TSQL',  
    @command = N'BACKUP DATABASE [Movies] TO DISK = N''C:\Backups\Movies.bak'' WITH CHECKSUM',
    @retry_attempts = 5,  
    @retry_interval = 5;
GO
EXEC sp_add_schedule 
    @schedule_name = N'Run_Sat_5AM',
    @freq_type = 8,
    @freq_interval = 64,
    @freq_recurrence_factor = 1,
    @active_start_time = 050000;
GO  
EXEC sp_attach_schedule  
   @job_name = N'BakMovies',  
   @schedule_name = N'Run_Sat_5AM';
GO  
EXEC sp_add_jobserver  
    @job_name = N'BakMovies';
GO

उपरोक्त कोड पांच संग्रहीत कार्यविधियों का उपयोग करता है लेकिन sp_update_job प्रक्रिया केवल उन विवरणों को अपडेट करती है जो sp_add_job . के साथ बनाए गए थे प्रक्रिया। अन्य प्रक्रियाओं की अपनी मिलान "अपडेट" प्रक्रिया है।

तो बस स्पष्ट होने के लिए, निम्नलिखित भाग वह हिस्सा है जिसे हम sp_update_job के साथ अपडेट कर सकते हैं प्रक्रिया।

EXEC sp_add_job  
    @job_name = N'BakMovies',
    @description = N'Backup the Movies database.',
    @category_name = 'Database Maintenance';

इस मामले में हमने नौकरी बनाते समय केवल तीन तर्क दिए। प्रक्रिया वास्तव में उससे बहुत अधिक स्वीकार करती है, लेकिन केवल आवश्यक तर्क नौकरी का नाम है।

नौकरी अपडेट करें

अब हम sp_update_job . का उपयोग कर सकते हैं उपरोक्त कार्य को संशोधित करने के लिए।

EXEC sp_update_job  
    @job_name = N'BakMovies',
    @new_name = N'BackupMoviesDB',
    @description = N'Backup the Movies database.',
    @category_name = 'Database Maintenance';

यह उदाहरण केवल एक ही काम का नाम बदलता है।

sp_update_job संग्रहीत प्रक्रिया केवल उन सेटिंग्स को बदलती है जिनके लिए पैरामीटर मान प्रदान किए जाते हैं। यदि कोई पैरामीटर छोड़ा जाता है, तो वर्तमान सेटिंग बनी रहती है।

इसलिए, इस उदाहरण में, हम विवरण और श्रेणी के नाम को छोड़ सकते थे:

EXEC sp_update_job  
    @job_name = N'BakMovies',
    @new_name = N'BackupMoviesDB';

नौकरी अक्षम करें

आप @enabled . सेट करके किसी कार्य को अक्षम कर सकते हैं करने के लिए 0 :

EXEC sp_update_job  
    @job_name = N'BackupMoviesDB',
    @new_name = N'BackupMoviesDB (DISABLED)',
    @enabled = 0;

इस उदाहरण में मैंने यह स्पष्ट करने के लिए कार्य का नाम भी बदल दिया है कि कार्य अक्षम है।

नौकरी जांचें

आप sp_help_job का उपयोग कर सकते हैं किसी कार्य की वर्तमान सेटिंग देखने के लिए।

आप इसे मापदंडों के साथ या बिना उपयोग कर सकते हैं। जब पैरामीटर के बिना उपयोग किया जाता है, तो यह सभी नौकरियां लौटाता है।

EXEC sp_help_job;

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

इस तरह:

EXEC sp_help_job 
	@job_name = 'BackupMoviesDB';

SSMS में इसे निष्पादित करते समय परिणाम कैसा दिखता है:

हालांकि, नाम प्रदान करते समय, आपको उस अंतिम नाम को याद रखना होगा जिसे आपने नौकरी दी थी। हमारे मामले में, यदि हम इस प्रक्रिया को पिछले उदाहरण के बाद चलाते हैं (जब हमने कार्य को अक्षम कर दिया था), तो हमें यह करने की आवश्यकता होगी:

EXEC sp_help_job 
	@job_name = 'BackupMoviesDB (DISABLED)';

हालांकि, नौकरी की आईडी स्थिर रहती है, इसलिए आप नौकरी के नाम की परवाह किए बिना इसका इस्तेमाल कर सकते हैं।

उदाहरण:

EXEC sp_help_job 
	@job_id = '158D714B-6686-48FD-BB41-D35C6EE70AED';

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

उदाहरण:

EXEC sp_help_job '158D714B-6686-48FD-BB41-D35C6EE70AED';

नौकरी के चरणों, शेड्यूल आदि का क्या होता है?

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

यदि आपको चरणों या शेड्यूल को संशोधित करने की आवश्यकता है, तो आपको उनके लिए उपयुक्त संग्रहीत कार्यविधि का उपयोग करना होगा (उदाहरण के लिए, sp_update_schedule का उपयोग करें) अपने शेड्यूल और sp_update_jobstep . को अपडेट करने के लिए अपना कार्य चरण अपडेट करने के लिए)।

पूर्ण सिंटैक्स

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

sp_update_job [ @job_id =] job_id | [@job_name =] 'job_name'  
     [, [@new_name =] 'new_name' ]   
     [, [@enabled =] enabled ]  
     [, [@description =] 'description' ]   
     [, [@start_step_id =] step_id ]  
     [, [@category_name =] 'category' ]   
     [, [@owner_login_name =] 'login' ]  
     [, [@notify_level_eventlog =] eventlog_level ]  
     [, [@notify_level_email =] email_level ]  
     [, [@notify_level_netsend =] netsend_level ]  
     [, [@notify_level_page =] page_level ]  
     [, [@notify_email_operator_name =] 'operator_name' ]  
     [, [@notify_netsend_operator_name =] 'netsend_operator' ]  
     [, [@notify_page_operator_name =] 'page_operator' ]  
     [, [@delete_level =] delete_level ]   
     [, [@automatic_post =] automatic_post ]

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. COUNT SQL फ़ंक्शन का प्रदर्शन

  2. फिक्स:"बैकअप लॉग नहीं किया जा सकता क्योंकि कोई मौजूदा डेटाबेस बैकअप नहीं है।" एसक्यूएल सर्वर/एसक्यूएल एज में

  3. लोकलहोस्ट की प्रतीक्षा में, हमेशा के लिए!

  4. यादृच्छिक तिथि के साथ पंक्तियों को कैसे अपडेट करें

  5. SQL सर्वर में PARSE() बनाम TRY_PARSE():क्या अंतर है?