Dependencies for Stored procedure: msdb.dbo.usp_purge_jobhistory

ReferencingFQN ReferencingType ReferencedFQN ReferencedType Depth RedHierarchy
msdb.dbo.usp_purge_jobhistory Stored procedure msdb..sysjobhistory Table 1 [msdb].[].[sysjobhistory]
msdb.dbo.usp_purge_jobhistory Stored procedure msdb.dbo.sp_purge_jobhistory Stored procedure 1 [msdb].[dbo].[sp_purge_jobhistory]
msdb.dbo.usp_purge_jobhistory Stored procedure Util.dbo.StringConcat Aggregate function (CLR) 1 [Util].[dbo].[StringConcat]
msdb.dbo.sp_purge_jobhistory Stored procedure msdb.dbo.sysjobhistory Table 2 [msdb].[dbo].[sp_purge_jobhistory], [msdb].[dbo].[sysjobhistory]
Util.dbo.StringConcat Aggregate function (CLR) Util.UtilClr ASSEMBLY 2 [Util].[dbo].[StringConcat], [Util].[UtilClr]

Stored procedure: msdb.dbo.usp_purge_jobhistory

CREATE PROCEDURE dbo.usp_purge_jobhistory
    @HistoryCountPerJobToKeep INT = 10000,
    @oldest_date DATETIME = NULL
AS
SET NOCOUNT ON
SET @oldest_date = ISNULL(@oldest_date, DATEADD(MONTH, -6, GETDATE()))

DECLARE @SQL VARCHAR(MAX)
IF @HistoryCountPerJobToKeep > 0
    BEGIN
;
        WITH    DJ
                  AS (SELECT    job_id,
                                RunDate,
                                ROW_NUMBER() OVER (PARTITION BY job_id ORDER BY RunDate DESC) AS RowNum
                      FROM      msdb..sysjobhistory jh (NOLOCK)
                      CROSS APPLY (SELECT   CAST(CAST([run_date] AS VARCHAR) AS DATETIME)
                                            + CAST(CAST(STUFF(STUFF(RIGHT('00000000' + CAST([run_time] AS VARCHAR), 6),
                                                                    3, 0, ':'), 6, 0, ':') AS TIME) AS DATETIME) AS RunDate) d
                      WHERE     RunDate > 0
                      GROUP BY  job_id,
                                RunDate)
            SELECT  @SQL = Util.dbo.StringConcat('EXEC msdb.dbo.sp_purge_jobhistory
    @job_id = '''
 + CAST(dj.job_id AS VARCHAR(256)) + ''',
    @oldest_date = '''
 + CAST(dj.RunDate AS VARCHAR) + '''
'
, '')
            FROM    dj
            WHERE   RowNum = @HistoryCountPerJobToKeep
    END

IF @oldest_date IS NOT NULL
    EXEC msdb.dbo.sp_purge_jobhistory
        @oldest_date = @oldest_date

Description for Stored procedure: msdb.dbo.usp_purge_jobhistory

Todo
Site Map | Printable View | © 2008 - 2012 NuRoN Consulting, INC | Powered by mojoPortal | HTML 5 | CSS | Original design by Andreas Viklund
Share This Using Popular Bookmarking Services