एसक्यूएल सर्वर एजेंट नौकरी - प्रति दिन 1 दिन को छोड़कर दैनिक अनुसूची


6

हमें SQL सर्वर एजेंट (SQL 2000) का उपयोग करके एक दैनिक कार्य चलाने की आवश्यकता है, लेकिन हम यह नहीं चाहते हैं कि यह प्रत्येक महीने की 22 तारीख को चले, क्योंकि अन्य प्रक्रियाएं हैं जो केवल उसी दिन चलती हैं जो संघर्ष करेगी।

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

जवाबों:


7

DATEPART (dd, getdate ()) = 22 को देखने के लिए जॉब में पहले चरण के रूप में एक जॉब स्टेप डालें और अगर यह जॉब रोकने के लिए sp_stopjob जारी करता है।


+1 किए हैं। यह मेरे विचार से बेहतर है :-)
Chris_K

1

ऐसा करने का एक तरीका यह है कि 22 तारीख को स्क्रिप्ट को चलाने के लिए एक चेक को शामिल किया जाए और उसे न चलाया जाए।

हालांकि यह एकमात्र तरीका है?


0

खैर, एक विकल्प आपके मौजूदा विचार के समान है। एक और नौकरी बनाएं जो तारीख की जांच करने के लिए एक स्क्रिप्ट चलाता है। यदि यह 22 वां कार्य है तो आपकी दैनिक नौकरी (SQL के माध्यम से) को निष्क्रिय कर देता है। यदि यह 22 वां नहीं है तो यह आपके दैनिक कार्य को सक्षम बनाता है।

आपके सुझाव पर इसका एकमात्र लाभ यह हो सकता है कि यह आपके दैनिक कार्य को किसी भी तारीख तर्क के "शुद्ध" रखता है।


0

22 वें पर दूसरी नौकरी चलाएं जो पहली नौकरी को निष्क्रिय कर दे:

निष्पादित msdb..sp_update_job @job_id = 0xC0923E444828064EA22B46B2C47A1363, @enabled = 0

और फिर 23 वें कार्य को फिर से सक्षम करें:

निष्पादित msdb..sp_update_job @job_id = 0xC0923E444828064EA22B46B2C47A1363, @enabled = 1

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.