113 lines
4.0 KiB
Transact-SQL
113 lines
4.0 KiB
Transact-SQL
-- Stored procedure
|
|
--V Transazione gestita a livello applicativo
|
|
CREATE PROCEDURE [dbo].[HIST_DELETEARCHIVIATI_08102015] AS
|
|
BEGIN
|
|
-- Nella tabella temporanea #deleteReport mettiamo tutti i report da cancellare presi dalla tabella generata dalla
|
|
-- HIST_getReportDaStoricizzare e caricati su nastro (flagArchiviato = 1)
|
|
select * into #deleteRepFisico from appoDaArchiviare where flagArchiviato = 1
|
|
declare @ttlStorico as int
|
|
set @ttlStorico = 30
|
|
--delete dei restorati al passare dei 30 giorni
|
|
--DELETE FROM dbo.ReportStorico
|
|
--WHERE IDENTIFICATIVO IN
|
|
-- (SELECT id
|
|
-- from dbo.RepositoryStorico WHERE datediff(dd,caricamentoInStorico,getDate()) > @ttlStorico
|
|
-- )
|
|
----aggiornamento puntamento tabella metadati
|
|
--UPDATE repositoryMetadati
|
|
--SET repository = 4
|
|
--WHERE repository = 3 and id IN
|
|
-- (SELECT id
|
|
-- from dbo.RepositoryStorico WHERE datediff(dd,caricamentoInStorico,getDate()) > @ttlStorico
|
|
-- )
|
|
--Cancellazione report online NON storicizzati --41083 1.57.36 - 1480 0.2.55
|
|
--cancellazione com'era prima della fix
|
|
--DELETE FROM dbo.ReportFisico
|
|
--WHERE IDENTIFICATIVO IN
|
|
-- (SELECT IdInRepository
|
|
-- FROM repositoryMetadati WHERE flagstoricizzato = 1 and flaglock = 0
|
|
-- )
|
|
--fix per problema lock/timeout
|
|
-- Nuova delete che sostituissce le query 1 e 2
|
|
delete rFisico
|
|
FROM dbo.ReportFisico rfisico
|
|
inner join #deleteRepFisico delRep on delRep.idReport = rfisico.identificativo
|
|
and delRep.repository = 0
|
|
----aggiornamento tabella metadati, mantengo l'informazione di quali report ho cancellato definitivamente.
|
|
update
|
|
RepositoryMetadati
|
|
set flagStoricizzato = 1
|
|
where datediff(day,dataGenerazione,getDate()) > 180
|
|
and repository = 0 and flaglock = 0 and flagStoricizzato = 0
|
|
-- Query 1
|
|
--DELETE FROM dbo.ReportFisico
|
|
--WHERE IDENTIFICATIVO IN
|
|
-- (SELECT TOP 10000 IdInRepository
|
|
-- FROM repositoryMetadati a
|
|
-- join reportFisico b
|
|
-- on a.idInRepository = b.identificativo
|
|
-- WHERE flagstoricizzato = 1 and flaglock = 0 and repository = 0
|
|
-- )
|
|
/*
|
|
WHILE @@ROWCOUNT>0
|
|
DELETE FROM dbo.ReportFisico
|
|
WHERE IDENTIFICATIVO IN
|
|
(SELECT TOP 2000 IdInRepository
|
|
FROM repositoryMetadati a
|
|
join reportFisico b
|
|
on a.idInRepository = b.identificativo
|
|
WHERE flagstoricizzato = 1 and flaglock = 0 and repository = 0
|
|
)
|
|
--fine fix per problema lock/timeout
|
|
*/
|
|
--Cancellazione report online storicizzati 1232 0.02.30 - 56 0.0.3
|
|
---- Query 2
|
|
--DELETE FROM dbo.ReportFisico
|
|
--WHERE IDENTIFICATIVO IN
|
|
-- (
|
|
-- SELECT top 10000 IdInRepository
|
|
-- FROM repositoryMetadati a
|
|
-- join reportFisico b
|
|
-- on a.idInRepository = b.identificativo
|
|
-- WHERE flagstoricizzato = 1 and repositoryPrestorico = 0 and flaglock = 1
|
|
-- )
|
|
--Cancellazione report contratto sei
|
|
-- Sotituisce query 3
|
|
delete rFisico
|
|
FROM dbo.C6ReportFisico rfisico
|
|
inner join #deleteRepFisico delRep on delRep.idReport = rfisico.identificativo
|
|
and delRep.repository = 1
|
|
-- Query 3
|
|
--Cancellazione report contratto sei
|
|
--DELETE FROM dbo.C6ReportFisico --32363 01.03.02 - 387 0.0.42
|
|
--WHERE IDENTIFICATIVO IN
|
|
-- (SELECT top 10000 IdInRepository--, a.*
|
|
-- FROM repositoryMetadati a
|
|
-- join C6ReportFisico b
|
|
-- on a.idInRepository = b.identificativo
|
|
-- WHERE flagstoricizzato = 1 and repositoryPrestorico = 1 and flaglock = 1
|
|
-- )
|
|
--Cancellazione report contratto sei campagna
|
|
-- sostituisce query 4
|
|
delete rFisico
|
|
FROM dbo.C6ReportFisico rfisico
|
|
inner join #deleteRepFisico delRep on delRep.idReport = rfisico.identificativo
|
|
and delRep.repository = 2
|
|
-- query 4
|
|
--Cancellazione report contratto sei campagna
|
|
--DELETE FROM dbo.C6ReportFisico_CAMPAGNA
|
|
--WHERE IDENTIFICATIVO IN
|
|
-- (SELECT IdInRepository
|
|
-- FROM repositoryMetadati WHERE flagstoricizzato = 1 and repositoryPrestorico = 2 and flaglock = 1
|
|
-- )
|
|
--aggiornamento repository tabella dei metadati ------begin transaction rollback
|
|
--vengono aggiornati i report a lucchetto aperti cancellati
|
|
update repositoryMetadati
|
|
set repository = 4
|
|
WHERE flagstoricizzato = 1
|
|
and repository not in (3,4)
|
|
-- Archivio tutti i Report che Sono stati archiviati
|
|
insert into dbo.ReportArchiviati
|
|
Select *, getDate()
|
|
from #deleteRepFisico
|
|
END |