Files
Mapo-IOB-WIN/EgwProxy.SqlDb.Test/SqlFromDebug/PAMA/ImportAll.sql
T
Samuele E. Locatelli c5e5a5befe Update stato stored PAMA
2023-03-17 10:46:18 +01:00

81 lines
3.6 KiB
Transact-SQL

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