Create a JOB in SQL Server using SQL Query

Introduction

This article provides a SQL query to creates a SQL agent job from the query window using transaction-SQL.

SQL Query to create Job

 -- =============================================  
      -- Author:          <Author,KAILASH CHANDRA BEHERA>  
      -- Create date: <Create Date,05 NOV 2020,>  
      -- =============================================  
      USE [msdb]  
      BEGIN TRANSACTION  
      DECLARE @ReturnCode INT  
      SELECT @ReturnCode = 0  
      /****** Object: JobCategory [[Uncategorized (Local)]]  Script Date: 24-11-2020 12:26:54 PM ******/  
      IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)  
      BEGIN  
           EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'  
           IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback  
      END  
 -- Replace the text name 'SQL Job Name' with your Job name what you want to give  
 -- Replace the 'UserID' with your login sql user id  
 --Replace the DatabaseName your database name  
 --CREATE SQL SERVER JOB AGENT  
      DECLARE @jobId BINARY(16)  
      EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'SQL Job Name',   
           @enabled=1,   
           @notify_level_eventlog=0,   
           @notify_level_email=0,   
           @notify_level_netsend=0,   
           @notify_level_page=0,   
           @delete_level=0,   
           @description=N'No description available.',   
           @category_name=N'[Uncategorized (Local)]',   
           @owner_login_name=N'UserID', @job_id = @jobId OUTPUT  
      IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback  
 --CREATES SQL JOB START STEP       
      EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'OnStart',   
           @step_id=1,   
           @cmdexec_success_code=0,   
           @on_success_action=1,   
           @on_success_step_id=0,   
           @on_fail_action=4,   
           @on_fail_step_id=2,   
           @retry_attempts=0,   
           @retry_interval=0,   
           @os_run_priority=0, @subsystem=N'TSQL',   
           @command=N'SQL QUERY|SP',   
           @database_name=N'DatabaseName',   
           @flags=0  
      IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback  
      --CREATES A STEP TO BE EXECUTED WHEN FIRST STEP FAILES  
      EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'OnFailor',   
           @step_id=2,   
           @cmdexec_success_code=0,   
           @on_success_action=4,   
           @on_success_step_id=1,   
           @on_fail_action=4,   
           @on_fail_step_id=1,   
           @retry_attempts=0,   
           @retry_interval=0,   
           @os_run_priority=0, @subsystem=N'TSQL',   
           @command=N'DECLARE @emailbudy NVARCHAR(500)  
 SET @emailbudy= (SELECT TOP 1 [message] +'' Due to ''+ [Errormessage] FROM HeightWidthLog ORDER BY id DESC);  
 EXEC msdb.dbo.sp_send_dbmail  
 @profile_name = ''MailAlert'',    
 @recipients =''receivermailaddress'',  
 @body = @emailbudy <br><br>,  
 @subject =''HeightWidthJob''  
 ',   
           @database_name=N'DatabaseName',   
           @flags=0  
      IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback  
      EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1  
      IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback  
 --CREATES SCHEDULER FOR THE JOB       
      EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'Every 10 minute',   
           @enabled=1,   
           @freq_type=4,   
           @freq_interval=1,   
           @freq_subday_type=4,   
           @freq_subday_interval=10,   
           @freq_relative_interval=0,   
           @freq_recurrence_factor=0,   
           @active_start_date=20190404,   
           @active_end_date=99991231,   
           @active_start_time=0,   
           @active_end_time=235959,   
           @schedule_uid=N'c0b80f31-7c41-4483-b7a2-ecb62789ceee'  
      IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback  
      EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'  
      IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback  
      COMMIT TRANSACTION  
      GOTO EndSave  
      QuitWithRollback:  
   IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION  
      EndSave:  
 END  
 GO  

Thanks

Kailash Chandra Behera

An IT Professional with 12 years experience in development life cycle in windows, service and Web based application using Microsoft.Net technologies. Proven record of developing all phases of projects in Microsoft.Net technology from initiation to closure aligning with the company's Business objectives to drive process improvements, competitive advantage and bottom-line gains. -> Good exposure of independently working and developing multiple projects ->Committed to efficient and effective development of projects in a fast-paced and deadline driver environment. Skill :- Develop and design projects in various technologies of Microsoft Technology. Total IT Experience- 13+

Previous Post Next Post

نموذج الاتصال