-- Schema: C6MartPeriodico -- Stored Procedure: SRV_STORICIZZAZIONE_OLD -- ============================================= -- Author: Paolo Giovanetti -- Create date: 21 gennaio 2009 -- Description: Effettua una storicizzazione del DataMart prima dell'import di nuovi dati. -- ============================================= -- [C6MartPeriodico].[SRV_STORICIZZAZIONE] 'GESTIONE_EMAIL' CREATE PROCEDURE [C6MartPeriodico].[SRV_STORICIZZAZIONE_OLD] @NomeTabella AS VARCHAR(50) = NULL AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here DECLARE @ID_ELAB INT -- Elaborazione da storicizzare DECLARE @MIN_ID_ELAB AS INT -- Elaborazione vecchia da eliminare dallo storico DECLARE @TempoStoricoC6 AS INT -- Numero di giorni di vita dello storico SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0) FROM C6MARTPERIODICO.ELABORAZIONI WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6 SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB() -- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TABELLA SPECIALE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --XXXXXXXXXXXXXXXXXXXXXXXX CONTRATTOSEI XXXXXXXXXXXXXXXXXXXXXXXX-- IF(@NomeTabella IS NULL OR @NomeTabella = 'CONTRATTOSEI') BEGIN DELETE FROM C6StoricoPeriodico.CONTRATTOSEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB INSERT INTO C6StoricoPeriodico.CONTRATTOSEI (Rete, Cod_Fiscale, Data_Sott, CodiceContratto, Cod_Agente, Data_Perf_Base, Data_Perf, Fascia_CPP, Email, Indirizzo, CAP, Citta, Prov, Nazione, Presso, Data_Inizio, Freq_Diagnosi, Freq_Monitor, Freq_DiagnosiPrec, Freq_MonitorPrec, Data_InizioConsInv, Data_InizioBase, Data_FineBase, Data_InizioAvanzato, Data_FineAvanzato, ProgressivoInvio, GenerazioneReport, InvioBenvenuto, DataUltimoInvio, ClienteMigrato, RisorseNA, NumSolleciti, Data_UltimoSollecito, NumRevoche, Data_UltimaRevoca, Note, ID_ELAB) SELECT Rete, Cod_Fiscale, Data_Sott, CodiceContratto, Cod_Agente, Data_Perf_Base, Data_Perf, Fascia_CPP, Email, Indirizzo, CAP, Citta, Prov, Nazione, Presso, Data_Inizio, Freq_Diagnosi, Freq_Monitor, Freq_DiagnosiPrec, Freq_MonitorPrec, Data_InizioConsInv, Data_InizioBase, Data_FineBase, Data_InizioAvanzato, Data_FineAvanzato, ProgressivoInvio, GenerazioneReport, InvioBenvenuto, DataUltimoInvio, ClienteMigrato, RisorseNA, NumSolleciti, Data_UltimoSollecito, NumRevoche, Data_UltimaRevoca, Note, @ID_ELAB FROM C6Mart.CONTRATTOSEI --WHERE ID_ELAB = @ID_ELAB END -- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FINE TABELLA SPECIALE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC XXXXXXXXXXXXXXXXXXXXXXXX-- IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC') BEGIN DELETE FROM C6StoricoPeriodico.ANAG_CC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB INSERT INTO C6StoricoPeriodico.ANAG_CC (RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB) SELECT RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB FROM C6MartPeriodico.ANAG_CC WHERE ID_ELAB = @ID_ELAB END --XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX-- IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC_TERZI') BEGIN DELETE FROM C6StoricoPeriodico.ANAG_CC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB INSERT INTO C6StoricoPeriodico.ANAG_CC_TERZI (RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB) SELECT RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB FROM C6MartPeriodico.ANAG_CC_TERZI WHERE ID_ELAB = @ID_ELAB END --XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI XXXXXXXXXXXXXXXXXXXXXXXX-- IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI') BEG