CreateUpdateStatisticsJob

Definition

Copy


    CREATE PROCEDURE [dbo].[CreateUpdateStatisticsJob]
    AS
    BEGIN

    set nocount on

    declare @myjobid uniqueidentifier
    declare @dbname nvarchar(256)
    declare @jobname nvarchar(256)
    set @dbname = db_name()
    set @jobname = @dbname+' Update Statistics'

    if not exists(select * from msdb..sysjobs where name = @jobname)
        BEGIN    
            EXEC [msdb].[dbo].[sp_add_job] 
            @job_name = @jobname
            @enabled = 1,
            @description = 'Update Blackbaud NetCommunity statistics',
            @job_id = @myjobid OUTPUT

            EXEC [msdb].[dbo].[sp_add_jobstep] 
            @job_id = @myjobid,
            @step_name = 'Execute spStats_UpdateStatistics',
            @subsystem = 'TSQL',
            @command = 'exec [dbo].[spStats_UpdateStatistics]'
            @database_name = @dbname,
            @retry_attempts = 5,
            @retry_interval = 5

            EXEC [msdb].[dbo].[sp_add_jobschedule]
            @job_id = @myjobid
            @name = 'Hourly update of Blackbaud NetCommunity statistics',
            @freq_type = 4, -- daily
            @freq_interval = 1,
            @freq_subday_type = 0x8,
            @freq_subday_interval = 1

            EXEC [msdb].[dbo].[sp_add_jobserver] 
            @job_id = @myjobid
        END
    END