2011-03-29 8 views
77

मुझे यह जानने की ज़रूरत है कि एसक्यूएल सर्वर एजेंट नौकरियों का उपयोग करके न्यूनतम एसक्यूएल क्वेरी को न्यूनतम आवश्यक कॉन्फ़िगरेशन सेटिंग्स के साथ कैसे चलाया जाए।दैनिक चलाने के लिए एसक्यूएल क्वेरी के लिए नौकरी कैसे निर्धारित करें?

+0

एसक्यूएल सर्वर के किस संस्करण का उपयोग कर रहे MSSQL सर्वर से है? – Faber

+0

माइक्रोसॉफ्ट एसक्यूएल 2008 –

+0

यहां एक्सप्रेस संस्करण के लिए समाधान है: http://stackoverflow.com/a/7201189/259881 –

उत्तर

113
  1. एसक्यूएल सर्वर एजेंट नोड का विस्तार करें और सही एसक्यूएल सर्वर एजेंट में नौकरियां नोड क्लिक करें और चुनें 'New Job'

  2. 'New Job' विंडो में नौकरी के नाम और 'General' टैब पर वर्णन डालें।

  3. विंडो के बाईं ओर 'Steps' का चयन करें और नीचे 'New' पर क्लिक करें।

  4. 'Steps' विंडो में एक चरण का नाम दर्ज करें और उस डेटाबेस का चयन करें जिसे आप क्वेरी के विरुद्ध चलाने के लिए चाहते हैं।

  5. टी-एसक्यूएल कमांड में पेस्ट करें जिसे आप कमांड विंडो में चलाने के लिए चाहते हैं और 'OK' पर क्लिक करें।

  6. नई नौकरी विंडो के बाईं ओर 'Schedule' मेनू पर क्लिक करें और शेड्यूल जानकारी दर्ज करें (उदा। दैनिक और एक समय)।

  7. 'OK' पर क्लिक करें - और यह होना चाहिए।

(वहाँ निश्चित रूप से अन्य विकल्प आप जोड़ सकते हैं कर रहे हैं - लेकिन मैं कहूँगा कि न्यूनतम तुम्हें नौकरी की स्थापना के लिये और अनुसूचित जरूरत है)

+0

एसक्यूएल सर्वर एक्सप्रेस पर ऐसा कैसे करें? एजेंट उन्नत सेवाओं के साथ एसक्यूएल सर्वर एक्सप्रेस के साथ आता है? –

+4

यह कहने के बिना चला जाता है कि आप जिस पर लॉग ऑन करते हैं उसके आधार पर, आप SQL सर्वर एजेंट नोड को बिल्कुल भी नहीं देख पाएंगे ... हर कोई sa के रूप में लॉग ऑन नहीं करता है। आगे (बल्कि सूखी) जानकारी .. http://msdn.microsoft.com/en-us/library/ms188283.aspx –

+0

यदि SQL सर्वर एजेंट नोड लेबल "एजेंट XPs अक्षम" लेबल के साथ विस्तार योग्य नहीं है, तो इस कोड को चलाएं sp_configure 'उन्नत विकल्प दिखाएं', 1; जाओ पुन: कॉन्फ़िगरेशन; जाओ sp_configure 'एजेंट XPs', 1; GO RECONFIGURE GO स्पष्टीकरण के लिए इस लिंक किया जा रहा है: https://msdn.microsoft.com/en-us/library/ms178127.aspx –

0

यहाँ एक नमूना कोड:

Exec sp_add_schedule 
    @schedule_name = N'SchedulName' 
    @freq_type = 1 
    @active_start_time = 08300 
+18

आपके उत्तर में आपके कोड का स्पष्टीकरण जोड़ना आम तौर पर एक अच्छा विचार है (भले ही यह आपके लिए स्पष्ट हो)। –

+0

इस उत्तर में पर्याप्त स्पष्टीकरण नहीं है। पर्याप्त स्पष्टीकरण के बिना पाठक इस उत्तर को समझ नहीं सकते हैं। –

-2

यदि आप चाहते हैं दैनिक बैकअप // सी में एसक्यूएल स्क्रिप्ट की दुकान निम्नलिखित: \ Users \ व्यवस्थापक \ डेस्कटॉप \ DBScript \ DBBackUpSQL.sql

DECLARE @pathName NVARCHAR(512), 
@databaseName NVARCHAR(512) SET @databaseName = 'Databasename' SET @pathName = 'C:\DBBackup\DBData\DBBackUp' + Convert(varchar(8), GETDATE(), 112) + '_' + Replace((Convert(varchar(8), GETDATE(), 108)),':','-')+ '.bak' BACKUP DATABASE @databaseName TO DISK = @pathName WITH NOFORMAT, 
INIT, 
NAME = N'', 
SKIP, 
NOREWIND, 
NOUNLOAD, 
STATS = 10 
GO 

कार्य शेड्यूलर

कार्य बनाएं->Triggers टैब का चयन करें New का चयन करें।

बटन का चयन करें दैनिक रेडियो बटन

क्लिक Ok बटन

उसके बाद Action टैब चयनित करें।

बटन "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S एडमिन-पीसी -आई "C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql" प्रोग्राम/स्क्रिप्ट टेक्स्ट बॉक्स में रखें (सुनिश्चित करें कि अपनी फाइल पथ से मिलान करें और डबल कोटेड पथ को स्टार्ट-> खोज बॉक्स में रखें और यदि यह मिलता है तो उसे क्लिक करें और देखें बैकअप वहाँ या नहीं)

है - ऊपर पथ हो सकता है insted 100 लिखना 90 "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S ADMIN-PC -i"C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql"

उसके बाद ठीक बटन

स्क्रिप्ट बार जब आप दैनिक पर उत्प्रेरक टैब पर चुनें जिस पर निष्पादित करेंगे आधार

इसका आनंद लें .............

7

टी-एसक्यूएल में ऐसा करने के लिए, आप दैनिक नौकरी निर्धारित करने के लिए निम्न सिस्टम संग्रहीत प्रक्रियाओं का उपयोग कर सकते हैं। यह उदाहरण प्रतिदिन 1:00 बजे शेड्यूल करता है। व्यक्तिगत संग्रहित प्रक्रियाओं और पैरामीटर की वैध सीमा के सिंटैक्स के विवरण के लिए माइक्रोसॉफ्ट सहायता देखें।

DECLARE @job_name NVARCHAR(128), @description NVARCHAR(512), @owner_login_name NVARCHAR(128), @database_name NVARCHAR(128); 

SET @job_name = N'Some Title'; 
SET @description = N'Periodically do something'; 
SET @owner_login_name = N'login'; 
SET @database_name = N'Database_Name'; 

-- Delete job if it already exists: 
IF EXISTS(SELECT job_id FROM msdb.dbo.sysjobs WHERE (name = @job_name)) 
BEGIN 
    EXEC msdb.dbo.sp_delete_job 
     @job_name = @job_name; 
END 

-- Create the job: 
EXEC msdb.dbo.sp_add_job 
    @[email protected]_name, 
    @enabled=1, 
    @notify_level_eventlog=0, 
    @notify_level_email=2, 
    @notify_level_netsend=2, 
    @notify_level_page=2, 
    @delete_level=0, 
    @[email protected], 
    @category_name=N'[Uncategorized (Local)]', 
    @[email protected]_login_name; 

-- Add server: 
EXEC msdb.dbo.sp_add_jobserver @[email protected]_name; 

-- Add step to execute SQL: 
EXEC msdb.dbo.sp_add_jobstep 
    @[email protected]_name, 
    @step_name=N'Execute SQL', 
    @step_id=1, 
    @cmdexec_success_code=0, 
    @on_success_action=1, 
    @on_fail_action=2, 
    @retry_attempts=0, 
    @retry_interval=0, 
    @os_run_priority=0, 
    @subsystem=N'TSQL', 
    @command=N'EXEC my_stored_procedure; -- OR ANY SQL STATEMENT', 
    @[email protected]_name, 
    @flags=0; 

-- Update job to set start step: 
EXEC msdb.dbo.sp_update_job 
    @[email protected]_name, 
    @enabled=1, 
    @start_step_id=1, 
    @notify_level_eventlog=0, 
    @notify_level_email=2, 
    @notify_level_netsend=2, 
    @notify_level_page=2, 
    @delete_level=0, 
    @[email protected], 
    @category_name=N'[Uncategorized (Local)]', 
    @[email protected]_login_name, 
    @notify_email_operator_name=N'', 
    @notify_netsend_operator_name=N'', 
    @notify_page_operator_name=N''; 

-- Schedule job: 
EXEC msdb.dbo.sp_add_jobschedule 
    @[email protected]_name, 
    @name=N'Daily', 
    @enabled=1, 
    @freq_type=4, 
    @freq_interval=1, 
    @freq_subday_type=1, 
    @freq_subday_interval=0, 
    @freq_relative_interval=0, 
    @freq_recurrence_factor=1, 
    @active_start_date=20170101, --YYYYMMDD 
    @active_end_date=99991231, --YYYYMMDD (this represents no end date) 
    @active_start_time=010000, --HHMMSS 
    @active_end_time=235959; --HHMMSS 
12

मैंने स्वीकृत उत्तर में चरणों का एनिमेटेड जीआईएफ बनाया। यह 2012

Schedule SQL Job

संबंधित मुद्दे