ALTER PROCEDURE [dbo].[stp_ImportAll] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Effettua tutti i task di import EXEC dbo.stp_GetMachineSigLog EXEC dbo.stp_GetMachineFluxLog EXEC dbo.stp_GetMachineProdData DECLARE @idxMax INT = 0 DECLARE @idxCur INT = 0 -- SignalLog BEGIN tran SELECT @idxMax = ISNULL(MAX(IdxEv),0) FROM MachineSignalLog SELECT @idxCur = ISNULL(MAX(LastIdx),0) FROM SyncState WHERE TableName ='SignLog' IF(@idxMax > 0 AND @idxMax > @idxCur) BEGIN UPDATE SyncState SET LastIdx = @idxMax ,LastUpdate = GETDATE() ,Note = 'Upd from ' + CAST(@idxCur AS NVARCHAR(50)) WHERE TableName ='SignLog' AND LastIdx < @IdxMax END COMMIT tran -- ProdData BEGIN tran SELECT @idxMax = ISNULL(MAX(IdxPD),0) FROM MachineProdData SELECT @idxCur = ISNULL(MAX(LastIdx),0) FROM SyncState WHERE TableName ='ProdData' IF(@idxMax > 0 AND @idxMax > @idxCur) BEGIN UPDATE SyncState SET LastIdx = @idxMax ,LastUpdate = GETDATE() ,Note = 'Upd from ' + CAST(LastIdx AS NVARCHAR(50)) WHERE TableName ='ProdData' END COMMIT tran -- FluxLog BEGIN tran SELECT @idxMax = ISNULL(MAX(IdxFL),0) FROM MachineFluxLog SELECT @idxCur = ISNULL(MAX(LastIdx),0) FROM SyncState WHERE TableName ='FluxLog' IF(@idxMax > 0 AND @idxMax > @idxCur) BEGIN UPDATE SyncState SET LastIdx = @idxMax ,LastUpdate = GETDATE() ,Note = 'Upd from ' + CAST(LastIdx AS NVARCHAR(50)) WHERE TableName ='FluxLog' END COMMIT tran -- ...e poi restituisce lettura tabella SyncState SELECT * FROM SyncState END