• Very nice script indeed.

    Just a question, isn’t there some misinformation in this part?

    BEGIN

    --IF PAGE LEVEL LOCKING IS DISABLED THEN REBUILD

    BEGIN TRY

    EXEC ('USE ['+@DB_NAME+'];ALTER INDEX ['+@IND_NAME+'] ON ['+@SCHEMA_NAME+'].['+@TAB_NAME +'] REORGANIZE ')

    END TRY

    BEGIN CATCH

    IF ERROR_NUMBER()=2552

    EXEC ('USE ['+@DB_NAME+'];ALTER INDEX ['+@IND_NAME+'] ON ['+@SCHEMA_NAME+'].['+@TAB_NAME +'] REBUILD ')

    END CATCH

    EXEC ('USE ['+@DB_NAME+'];UPDATE STATISTICS ['+@SCHEMA_NAME+'].['+@TAB_NAME+'] (['+@IND_NAME+']) ' )

    INSERT INTO MSDB.DBO.DBA_DEFRAG_MAINTENANCE_HISTORY

    VALUES (@DB_NAME,@TAB_NAME,@IND_NAME,@FRAG,@PAGES,'REORGANIZE & UPDATESTATS',GETDATE())

    END

    If the TRY fail it goes into the CATCH, it does a rebuild.

    But it still updates the history table with “REORGANIZE & UPDATESTATS”