home *** CD-ROM | disk | FTP | other *** search
/ moodle.waes.ac.uk / moodle.waes.ac.uk.zip / moodle.waes.ac.uk / TMG / SP1-TMG-KB981324-AMD64-ENU.msp / PCW_CAB_SHFx2 / F2143_msfpcui.dll / BINARY / 25153 < prev    next >
Text File  |  2010-06-15  |  3KB  |  78 lines

  1. CREATE PROCEDURE [dbo].[ISA_spAggregateDailyToMonthlySummaries] 
  2.     @CurrentMonth datetime,
  3.     @LastDailyToKeep datetime,
  4.     @LastMonthlyToKeep datetime
  5. AS
  6. BEGIN
  7.     SET NOCOUNT ON;
  8.     SET XACT_ABORT ON 
  9.  
  10.     DECLARE @CurrentMonthLastDay datetime
  11.     DECLARE @CurrentMonthFirstDay datetime
  12.     SET @CurrentMonthFirstDay = DATEADD(day, 1 - 1 * DATEPART(day, @CurrentMonth), @CurrentMonth)
  13.     SET @CurrentMonthLastDay = DATEADD(day, -1, DATEADD(month, 1, @CurrentMonthFirstDay))
  14.  
  15.     PRINT   ' 1st day:' 
  16.     PRINT @CurrentMonthFirstDay
  17.     PRINT   'last day:'
  18.     PRINT @CurrentMonthLastDay
  19.  
  20.     BEGIN TRANSACTION
  21.     BEGIN TRY
  22.     
  23.         DECLARE @AggregSp varchar(300)
  24.         IF EXISTS (SELECT [AggregationSp] FROM [tblPeriodAggregationRegistration])
  25.         BEGIN 
  26.  
  27.             DECLARE @StrSQL varchar(1000)
  28.  
  29.             DECLARE AggrSp_cursor CURSOR FOR 
  30.             SELECT [AggregationSp] FROM [tblPeriodAggregationRegistration]
  31.  
  32.             OPEN AggrSp_cursor
  33.             FETCH NEXT FROM AggrSp_cursor INTO @AggregSp
  34.             WHILE (@@FETCH_STATUS = 0)
  35.             BEGIN 
  36.                 SET @StrSQL = @AggregSp + 
  37.                 ' @CurrentMonthFirstDay = ' + QUOTENAME(@CurrentMonthFirstDay, NCHAR(39)) +
  38.                 ',@CurrentMonthLastDay = ' + QUOTENAME(@CurrentMonthLastDay, NCHAR(39)) + 
  39.                 ',@LastDailyToKeep = ' + QUOTENAME(@LastDailyToKeep, NCHAR(39)) + 
  40.                 ',@LastMonthlyToKeep = ' + QUOTENAME(@LastMonthlyToKeep, NCHAR(39)) 
  41.  
  42.                 PRINT 'Executing : ' + @StrSQL
  43.                 EXEC (@StrSQL)
  44.                 
  45.                 FETCH NEXT FROM AggrSp_cursor INTO @AggregSp
  46.             END
  47.             CLOSE AggrSp_cursor
  48.             DEALLOCATE AggrSp_cursor
  49.         END 
  50.     
  51.         COMMIT TRANSACTION
  52.         PRINT 'Successfully aggregated daily summaries to monthly summaries'
  53.     END TRY
  54.     BEGIN CATCH
  55.         ROLLBACK TRANSACTION
  56.         PRINT 'Unable to aggregate daily summaries'
  57.         PRINT ERROR_MESSAGE() 
  58.         DECLARE 
  59.             @ErrorMessage    NVARCHAR(4000),
  60.             @ErrorNumber     INT,
  61.             @ErrorSeverity   INT,
  62.             @ErrorState      INT,
  63.             @ErrorLine       INT,
  64.             @ErrorProcedure  NVARCHAR(200);
  65.  
  66.         SELECT
  67.             @ErrorMessage = ERROR_MESSAGE(),
  68.             @ErrorNumber = ERROR_NUMBER(),
  69.             @ErrorSeverity = ERROR_SEVERITY(),
  70.             @ErrorState = ERROR_STATE(),
  71.             @ErrorLine = ERROR_LINE(),
  72.             @ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
  73.  
  74.         RAISERROR (@ErrorMessage, @ErrorSeverity, 1, @ErrorNumber, @ErrorSeverity, @ErrorState, @ErrorProcedure, @ErrorLine);
  75.     END CATCH
  76.  
  77. END
  78.