-- ============================================= -- Steamware, S.E.L. -- mod: 2012.02.23 -- -- Description: Verifica se ci sono RQ annullati e se ci sono cartellini associati -- li elimina richiamando la relativa stored -- ============================================= CREATE PROCEDURE [BatchQueue].[stp_batch_cancellaUDC_RapQualAnnullati] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements. SET NOCOUNT ON; IF OBJECT_ID(N'tempdb..#CartRQAnnullati') IS NOT NULL -- Se esiste già la tabella temporanea cancello DROP TABLE #CartRQAnnullati; -- Carico gli UDC Annullati ( vengono messi ad A su AS400 quando annullano il Rapporto di Qualità ) WITH Cte AS ( SELECT DISTINCT r.nRapQual FROM RilPro.RapQual AS r INNER JOIN dbo.ElencoCartellini AS e -- per sicurezza verifico che i cartellini esistano anche in ElencoCartellini ON r.UDC = e.UDC WHERE r.BenesQual = 'A' AND r.UDC IS NOT NULL -- Cartellino Annullato e associato a Cartellini GMW ) SELECT nRapQual, ROW_NUMBER() OVER( ORDER BY nRapQual ) AS Riga INTO #CartRQAnnullati FROM Cte DECLARE @Riga AS INT = 1; DECLARE @TotRighe AS INT; DECLARE @nRapQual NUMERIC(6,0); SELECT @TotRighe = MAX(Riga) FROM #CartRQAnnullati ; -- Per ogni UDC Annullato eseguo la stored di cancellazione WHILE @Riga <= @TotRighe BEGIN SELECT @nRapQual=nRapQual FROM #CartRQAnnullati WHERE Riga = @Riga EXECUTE dbo.stp_UDC_delete_byRdQ @nRapQual , 0 -- 0 eseguita in Batch -- Incremento contatore Riga ( RQ successiva ) SET @Riga = @Riga + 1 END IF OBJECT_ID(N'tempdb..#CartRQAnnullati') IS NOT NULL -- tabella temporanea cancello DROP TABLE #CartRQAnnullati; END