set xact_abort on go begin transaction go set ANSI_NULLS on go /************************************* * STORED PROCEDURE stp_TC_getMaxByMacchinaPeriodo * recupera tempi ciclo x macchina e periodo * * modif.: S.E.L. - 2010.12.15 **************************************/ create PROCEDURE stp_TC_getMaxByMacchinaPeriodo ( @IdxMacchina NVARCHAR(50), @Inizio DATETIME, @Fine DATETIME ) AS SELECT @IdxMacchina AS IdxMacchina, '' AS CodArticolo, GETDATE() as DataOraRif, MAX(TCMedio) AS TCMedio, 0 AS PzProd FROM TempiCicloRilevati WHERE IdxMacchina = @IdxMacchina AND (DataOraRif >= @Inizio) AND (DataOraRif <= @Fine) RETURN go /************************************* * STORED PROCEDURE stp_TC_getMinByMacchinaPeriodo * recupera tempi ciclo x macchina e periodo * * modif.: S.E.L. - 2010.12.15 **************************************/ create PROCEDURE stp_TC_getMinByMacchinaPeriodo ( @IdxMacchina NVARCHAR(50), @Inizio DATETIME, @Fine DATETIME ) AS SELECT @IdxMacchina AS IdxMacchina, '' AS CodArticolo, GETDATE() as DataOraRif, MIN(TCMedio) AS TCMedio, 0 AS PzProd FROM TempiCicloRilevati WHERE IdxMacchina = @IdxMacchina AND (DataOraRif >= @Inizio) AND (DataOraRif <= @Fine) RETURN go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go /************************************* * STORED PROCEDURE stp_TC_getMaxByMacchinaPeriodo * recupera tempi ciclo x macchina e periodo * * modif.: S.E.L. - 2010.12.15 **************************************/ alter PROCEDURE stp_TC_getMaxByMacchinaPeriodo ( @IdxMacchina NVARCHAR(50), @Inizio DATETIME, @Fine DATETIME ) AS SELECT @IdxMacchina AS IdxMacchina, '' AS CodArticolo, GETDATE() as DataOraRif, MAX(TCMedio) AS TCMedio, 0 AS PzProd FROM TempiCicloRilevati WHERE IdxMacchina = @IdxMacchina AND (DataOraRif >= @Inizio) AND (DataOraRif <= @Fine) AND TCMedio > 0 RETURN go /************************************* * STORED PROCEDURE stp_TC_getMedByMacchinaPeriodo * recupera tempi ciclo x macchina e periodo * * modif.: S.E.L. - 2010.12.24 **************************************/ create PROCEDURE stp_TC_getMedByMacchinaPeriodo ( @IdxMacchina NVARCHAR(50), @Inizio DATETIME, @Fine DATETIME ) AS SELECT @IdxMacchina AS IdxMacchina, '' AS CodArticolo, GETDATE() as DataOraRif, SUM(TCMedio * PzProd) / SUM(PzProd) AS TCMedio, 0 AS PzProd FROM TempiCicloRilevati WHERE IdxMacchina = @IdxMacchina AND (DataOraRif >= @Inizio) AND (DataOraRif <= @Fine) AND TCMedio > 0 RETURN go /************************************* * STORED PROCEDURE stp_TC_getMinByMacchinaPeriodo * recupera tempi ciclo x macchina e periodo * * modif.: S.E.L. - 2010.12.15 **************************************/ alter PROCEDURE stp_TC_getMinByMacchinaPeriodo ( @IdxMacchina NVARCHAR(50), @Inizio DATETIME, @Fine DATETIME ) AS SELECT @IdxMacchina AS IdxMacchina, '' AS CodArticolo, GETDATE() as DataOraRif, MIN(TCMedio) AS TCMedio, 0 AS PzProd FROM TempiCicloRilevati WHERE IdxMacchina = @IdxMacchina AND (DataOraRif >= @Inizio) AND (DataOraRif <= @Fine) AND TCMedio > 0 RETURN go -- ============================================= -- Author: Samuele E. Locatelli -- Create date: 2009-03-04 -- mod date: 2010-07-14 -- -- Description: riallineamento con update massivo dati db -- aggiorna i dati nel db per portarli ad essere "odierni" ovvero ultimo evento appena successo -- ============================================= alter PROCEDURE stp_ZZZ_riallineaDateDb AS DBCC SHOWCONTIG(EventList) DBCC SHOWCONTIG(DiarioDiBordo) EXEC USP_DisableEnableNonClusteredIndexes 'Mapo_ColMecc',null, 1 --disabilito indici PRINT 'inizio UPDATE tabelle...' DECLARE @lastData AS DATETIME DECLARE @diff_min as INT -- calcolo l'ultima data degli eventi SET @lastData = (SELECT MAX(InizioStato) AS inizio FROM EventList) -- ora calcolo la differenza tra quello e la data/ora odierna SET @diff_min = (SELECT DATEDIFF(n, @lastData, getdate())) -- aggiorno tabelle di conseguenza modificando le date -- aggiorno EventList UPDATE EventList SET InizioStato = DATEADD(n, @diff_min, InizioStato) -- aggiorno DiarioDiBordo UPDATE DiarioDiBordo SET InizioStato = DATEADD(n, @diff_min, InizioStato),FineStato = DATEADD(n, @diff_min, FineStato) -- aggiorno StatoMacchine UPDATE StatoMacchine SET InizioStato = DATEADD(n, @diff_min, InizioStato) -- aggiorno KeepAlive UPDATE KeepAlive SET DataOraServer = DATEADD(n, @diff_min, DataOraServer), DataOraMacchina = DATEADD(n, @diff_min, DataOraMacchina), DataOraStart = DATEADD(n, @diff_min, DataOraStart) -- aggiorno TC teorici UPDATE TempiCicloTeorici SET DataOraFrom = DATEADD(n, @diff_min, DataOraFrom), DataOraTo = DATEADD(n, @diff_min, DataOraTo) -- aggiorno TC rilevati UPDATE TempiCicloRilevati SET DataOraRif = DATEADD(n, @diff_min, DataOraRif) PRINT 'concluso UPDATE tabelle...' DBCC SHOWCONTIG(EventList) DBCC SHOWCONTIG(DiarioDiBordo) EXEC USP_DisableEnableNonClusteredIndexes 'Mapo_ColMecc',null, 2 --riattivo indici --ricostruisco indici PRINT 'ricostruisco indici...' DBCC DBREINDEX(EventList) DBCC DBREINDEX(DiarioDiBordo) DBCC DBREINDEX(TransizioneIngressi) DBCC DBREINDEX(Kanban2ins) DBCC DBREINDEX(Kanban) DBCC DBREINDEX(AnagraficaOperatori) DBCC DBREINDEX(AnagraficaOperatori2ins) DBCC SHOWCONTIG(EventList) DBCC SHOWCONTIG(DiarioDiBordo) --shrink del db PRINT 'compatto DB...' DBCC SHRINKDATABASE (Mapo_ColMecc) RETURN go commit go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(30, GETDATE()) GO