--@job and @databasename form the name of the job in sql agent. DECLARE @job nvarchar(128)='db maintenance' DECLARE @mycommand nvarchar(max) ='EXEC [sp_DBMaintenance]' DECLARE @servername nvarchar(28) ='ALB-335034L' DECLARE @startdate nvarchar(8) ='20150924' DECLARE @starttime nvarchar(8)='140000' declare @databasename nvarchar(20)='EnVisage' declare @schName nvarchar(20)='Monthly Schedule' declare @stepName nvarchar(20)='process step' /* 1=once 4=daily 8=weekly 16=monthly */ declare @freqtype int =16 -- run monthly declare @freqinterval int=16 --On the freq_interval day of the month. declare @freqrecurrencefactor int =1 -- how many occurances to skip between exec --end parms set @job=@job+'_'+@databasename --delete any entries if we have one for this job begin try exec dbo.sp_delete_job @job_name=@job end try BEGIN CATCH --do nothing. we failed to remove the job. it might not exist.. END CATCH --Add a job EXEC dbo.sp_add_job @job_name = @job ; --Add a job step named process step. This step runs the stored procedure EXEC sp_add_jobstep @job_name = @job, @step_name = @stepName, @subsystem = N'TSQL', @command = @mycommand, @database_name=@databasename; --Schedule the job at a specified date and time exec sp_add_jobschedule @job_name = @job, @name = @schName, @freq_type=@freqtype, @freq_interval=@freqinterval, @active_start_date = @startdate, @active_start_time = @starttime, @freq_recurrence_factor =@freqrecurrencefactor -- Add the job to the SQL Server Server EXEC dbo.sp_add_jobserver @job_name = @job, @server_name = @servername