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

T-SQL के साथ SQL सर्वर एजेंट शेड्यूल बनाएं

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

यह प्रक्रिया शेड्यूल बनाती है, लेकिन यह इसे किसी भी कार्य से नहीं जोड़ती है। इसे किसी कार्य से जोड़ने के लिए, आपको sp_attach_schedule . का उपयोग करना होगा प्रक्रिया।

आप sp_add_jobschedule . का भी उपयोग कर सकते हैं शेड्यूल बनाने और सभी को समान प्रक्रिया के साथ संलग्न करने के लिए।

sp_add_schedule . का उदाहरण प्रक्रिया

यहां एक उदाहरण दिया गया है जो sp_add_schedule . का उपयोग करता है एक नया शेड्यूल बनाने के लिए:

EXEC sp_add_schedule 
    @schedule_name = N'RunDailyAM',
    @freq_type = 4,
    @freq_interval = 4,
    @active_start_time = 041000;
GO

यह संग्रहीत कार्यविधि मेरे द्वारा इस उदाहरण में शामिल किए गए तर्कों की तुलना में अधिक तर्क स्वीकार करती है, लेकिन ये कुछ अधिक सामान्य तर्क हैं। स्वीकृत मूल्यों की रूपरेखा के लिए नीचे दी गई तालिकाएं देखें।

@schedule_name एक आवश्यक तर्क है, लेकिन अन्य वैकल्पिक हैं, और यदि आप उन्हें प्रदान नहीं करते हैं तो उनकी डिफ़ॉल्ट सेटिंग्स होती हैं।

अब हम sp_attach_schedule . का उपयोग कर सकते हैं उस शेड्यूल को किसी मौजूदा नौकरी से जोड़ने के लिए:


EXEC sp_attach_schedule  
   @job_name = N'BackupPetHotelDB',  
   @schedule_name = N'RunDailyAM';  
GO

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

sp_add_jobschedule . का उदाहरण प्रक्रिया

यहां एक उदाहरण दिया गया है जो sp_add_jobschedule . का उपयोग करता है एक नया शेड्यूल बनाने और उसे नौकरी से जोड़ने के लिए, सब कुछ एक ही बार में:

EXEC sp_add_jobschedule 
    @job_name = N'BackupMusicDB',
    @name = N'Weekly_Sun_3AM',
    @freq_type = 8,
    @freq_interval = 1,
    @freq_recurrence_factor = 1,
    @active_start_time = 30000;

इस प्रक्रिया के साथ @job_name तर्क कार्य का नाम और @name . प्रदान करता है तर्क वह नाम प्रदान करता है जिसे आप शेड्यूल को देना चाहते हैं।

पैरामीटर मान

जिस तरह से शेड्यूल डेटा msdb . में संग्रहीत किया जाता है जब टी-एसक्यूएल के साथ शेड्यूलिंग जॉब की बात आती है तो डेटाबेस इसे थोड़ा मुश्किल बना देता है।

दिनांक/समय मान int . के रूप में संग्रहीत किए जाते हैं प्रकार। आवृत्ति प्रकार को int . के रूप में व्यक्त किया जाता है , जैसा कि अंतराल मान है, और कई अन्य विकल्प हैं।

ऊपर दिए गए उदाहरणों में दिए गए पैरामीटर के लिए स्वीकृत मानों का अवलोकन नीचे दिया गया है।

@freq_type

यह तर्क निर्दिष्ट करता है कि किसी कार्य को कब निष्पादित किया जाना है। यह निम्नलिखित मान स्वीकार करता है:

<थ>विवरण
मान
1 एक बार
4 दैनिक
8 साप्ताहिक
16 मासिक
32 मासिक, freq_interval के सापेक्ष
64 SQL एजेंट सेवा प्रारंभ होने पर चलाएँ
128 कंप्यूटर के निष्क्रिय होने पर चलाएं

@freq_interval

यह तर्क उन दिनों को निर्दिष्ट करता है जब किसी कार्य को निष्पादित किया जाता है।

यह तर्क @freq_type . के मान पर निर्भर करता है तर्क, जैसा कि निम्न तालिका में बताया गया है:

freq_type का मान freq_interval पर प्रभाव
1 (एक बार) freq_interval अप्रयुक्त है।
4 (दैनिक) हर freq_interval दिन।
8 (साप्ताहिक) freq_interval निम्न में से एक या अधिक है (OR . के साथ संयुक्त) तार्किक ऑपरेटर):

1 (रविवार)

2 (सोमवार)

4 (मंगलवार)

8 (बुधवार)

16 (गुरूवार)

32 (शुक्रवार)

64 (शनिवार)
16 (मासिक) freq_interval पर महीने का दिन।
32 (मासिक रिश्तेदार) freq_interval निम्नलिखित में से एक है:

1 (रविवार)

2 (सोमवार)

3 (मंगलवार)

4 (बुधवार)

5 (गुरूवार)

6 (शुक्रवार)

7 (शनिवार)

8 (दिन)

9 (सप्ताहांत)

10 (सप्ताहांत का दिन)
64 (जब SQLServerAgent सेवा प्रारंभ होती है) freq_interval अप्रयुक्त है।
128 freq_interval अप्रयुक्त है।

@freq_recurrence_factor

यह निर्धारित कार्य निष्पादन के बीच हफ्तों या महीनों की संख्या निर्दिष्ट करता है।

यह int . है , 0 . के डिफ़ॉल्ट के साथ , और इसका उपयोग केवल तभी किया जाता है जब freq_type है 8 , 16 , या 32

@active_start_time

@active_start_date . के बीच किसी भी दिन का समय निर्दिष्ट करता है और @active_end_date किसी कार्य का निष्पादन प्रारंभ करने के लिए तर्क। @active_start_time int . है , 000000 . के डिफ़ॉल्ट के साथ , जो 12:00:00 पूर्वाह्न को इंगित करता है। 24 घंटे की घड़ी पर, और एचएचएमएमएसएस फॉर्म का उपयोग करके दर्ज किया जाना चाहिए।

@active_start_date

हालांकि उपरोक्त मेरे उदाहरणों में शामिल नहीं है, @active_start_date तर्क आपको उस तिथि को निर्दिष्ट करने की अनुमति देता है जिस पर किसी कार्य का निष्पादन शुरू हो सकता है। यह int . है , NULL के डिफ़ॉल्ट के साथ, जो आज की तारीख को इंगित करता है। दिनांक YYYYMMDD के रूप में स्वरूपित है।

@active_end_date

आप एक @active_end_date भी प्रदान कर सकते हैं तर्क, जो उस तिथि को निर्दिष्ट करता है जिस पर किसी कार्य का निष्पादन रुक सकता है।

@active_end_date int . है , 99991231 . के डिफ़ॉल्ट के साथ , जो 31 दिसंबर, 9999 को इंगित करता है। तिथि को YYYYMMDD के रूप में स्वरूपित किया गया है।

अधिक जानकारी

sp_add_schedule . के लिए Microsoft के दस्तावेज़ देखें और/या माइक्रोसॉफ्ट के दस्तावेज़ sp_add_jobschedule . के लिए विभिन्न तर्कों और उनके स्वीकृत मूल्यों के बारे में अधिक जानकारी के लिए।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PARSE () का उपयोग करके SQL सर्वर में एक स्ट्रिंग को दिनांक/समय में कैसे परिवर्तित करें

  2. 13 SQL सर्वर सुरक्षा सर्वोत्तम अभ्यास

  3. क्या कोई .NET SQL सर्वर के newequentialid के बराबर है ()

  4. SQL सर्वर (T-SQL) में डेटाबेस मेल प्रोफ़ाइल हटाएं

  5. SQL:शीर्ष 3 रिकॉर्ड + मात्रा का योग चुनें