aggiunto progetto MapoDb...
This commit is contained in:
@@ -0,0 +1,839 @@
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
-- ================================================
|
||||
-- Author: Samuele E. Locatelli
|
||||
-- Create date: 2012.11.23
|
||||
--
|
||||
-- Description: rigenerazione del diario di bordo
|
||||
-- a partire da macchina eventi/stati + EventList
|
||||
-- ================================================
|
||||
alter PROCEDURE man.stp_ricalcolaDatiMacchinaFromDate
|
||||
(
|
||||
@idxMacchina NVARCHAR(50),
|
||||
@inizio DATETIME,
|
||||
@idxStatoStart INT = 1
|
||||
)
|
||||
AS
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @fine DATETIME
|
||||
|
||||
--DBCC SHOWCONTIG(EventList)
|
||||
--DBCC SHOWCONTIG(DiarioDiBordo)
|
||||
|
||||
/* DA USARE ? Verificare */
|
||||
--DECLARE @Database AS SYSNAME;
|
||||
--SET @Database = DB_NAME()
|
||||
--EXEC USP_DisableEnableNonClusteredIndexes @Database ,null, 1 -- disabilito indici
|
||||
|
||||
-- update SAM 2013.10.24: "torno indietro" di 2 eventi rispetto alal data ora indicata come start, SE CI SONO
|
||||
SELECT @inizio = ISNULL(MIN(InizioStato),@inizio) FROM
|
||||
(
|
||||
SELECT TOP 3 InizioStato
|
||||
FROM DiarioDiBordo
|
||||
WHERE IdxMacchina = @idxMacchina AND InizioStato < @inizio
|
||||
ORDER BY InizioStato DESC
|
||||
) AS tbl
|
||||
|
||||
|
||||
-- DISATTIVO inserimento in DiarioDiBordo per la macchina indicata
|
||||
-- DEVE disattivare anche il caricamento degli eventi
|
||||
UPDATE DatiMacchine
|
||||
SET insEnabled = 0
|
||||
WHERE IdxMacchina = @IdxMacchina
|
||||
|
||||
-- devo sempre rielaborare tutti gli eventi fino a dataora odierna
|
||||
SET @fine = ( SELECT MAX(InizioStato) FROM EventList
|
||||
WHERE idxMacchina = @idxMacchina )
|
||||
|
||||
-- svuoto dati che vado a sostituire
|
||||
PRINT 'svuoto TempiCicloRilevati per periodo indicato...'
|
||||
DELETE FROM TempiCicloRilevati WHERE idxMacchina = @idxMacchina AND DataOraRif BETWEEN @inizio AND @fine
|
||||
|
||||
PRINT 'svuoto DiarioDiBordo per periodo indicato...'
|
||||
EXEC stp_DDB_deleteMacchinaPeriodo @idxMacchina, @inizio, @fine -- cancella diario di bordo
|
||||
|
||||
PRINT 'processo EventList per periodo indicato...'
|
||||
DECLARE @InizioStato DATETIME
|
||||
DECLARE @IdxTipo INT
|
||||
DECLARE @MatricolaKanban NVARCHAR(50)
|
||||
DECLARE @Value NVARCHAR(50)
|
||||
DECLARE @MatrOpr INT
|
||||
DECLARE @pallet NVARCHAR(20)
|
||||
DECLARE @nextIdxStato INT
|
||||
DECLARE @currIdxStato INT
|
||||
DECLARE @IdxFamiglia INT
|
||||
DECLARE @TabAzione NVARCHAR(50) = '';
|
||||
DECLARE @Azione NVARCHAR(50) = '';
|
||||
DECLARE @FlgAggTempiC CHAR(1) = 'N'; -- Y/N = elabora o meno i tempi ciclo
|
||||
|
||||
-- calcolo famiglia macchina!
|
||||
SET @IdxFamiglia = ( SELECT IdxFamiglia FROM Macchine2FamiglieMacchine WHERE idxMacchina = @idxMacchina )
|
||||
|
||||
-- Recupero stato precedente, altrimenti ipotizzo macchina inizialmente in stato richiesto (default: 1 = pronta) e quindi imposto stato current a quello iniziale richiesto...
|
||||
SET @currIdxStato = ISNULL( ( SELECT TOP 1 IdxStato FROM DiarioDiBordo WHERE IdxMacchina = @idxMacchina AND InizioStato < @inizio
|
||||
ORDER BY InizioStato DESC ) , @idxStatoStart)
|
||||
|
||||
-- verifico i record elaborati
|
||||
SELECT COUNT(*)
|
||||
FROM EventList AS e
|
||||
LEFT JOIN dbo.AnagraficaEventi AS a ON e.idxTipo = a.IdxTipo
|
||||
WHERE e.IdxMacchina = @idxMacchina
|
||||
AND e.InizioStato BETWEEN @inizio AND @fine
|
||||
|
||||
-- leggo la tabella degli eventi con cursore x percorrere i dati...
|
||||
DECLARE event2proc CURSOR FOR
|
||||
SELECT e.InizioStato, e.IdxTipo, e.MatricolaKanban, e.Value, e.MatrOpr, e.pallet,
|
||||
a.TabAzione, a.Azione
|
||||
FROM EventList AS e
|
||||
LEFT JOIN dbo.AnagraficaEventi AS a ON e.idxTipo = a.IdxTipo
|
||||
WHERE e.IdxMacchina = @idxMacchina
|
||||
AND e.InizioStato BETWEEN @inizio AND @fine
|
||||
ORDER BY e.InizioStato;
|
||||
/*
|
||||
SELECT InizioStato, IdxTipo, MatricolaKanban, Value, MatrOpr, pallet
|
||||
FROM EventList
|
||||
WHERE IdxMacchina = @idxMacchina
|
||||
AND InizioStato BETWEEN @inizio AND @fine
|
||||
ORDER BY InizioStato;
|
||||
*/
|
||||
OPEN event2proc;
|
||||
|
||||
FETCH NEXT FROM event2proc
|
||||
INTO @InizioStato, @IdxTipo, @MatricolaKanban, @Value, @MatrOpr, @pallet, @TabAzione, @Azione;
|
||||
|
||||
DECLARE @NumPz INT = 1;
|
||||
DECLARE @ContaInsert INT = 0;
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
|
||||
IF ( ISNULL(@TabAzione,'') <> '' AND ISNULL(@Azione,'') <> '')
|
||||
BEGIN
|
||||
SET @NumPz = CASE WHEN (ISNUMERIC(@Value)=1) THEN @Value ELSE 1 END
|
||||
-- controllo se devo aggiornare i Tempi ciclo in base allo stato macchina ( se null resta precedente )
|
||||
SELECT @FlgAggTempiC = ( CASE Semaforo WHEN 'V' THEN 'Y' ELSE 'N' END ) FROM dbo.AnagraficaStati
|
||||
WHERE IdxStato = @currIdxStato
|
||||
EXEC dbo.stp_EL_processaEvento @IdxTipo, @idxMacchina, @MatricolaKanban, @InizioStato, @NumPz, 'N', @FlgAggTempiC
|
||||
END
|
||||
|
||||
-- calcolo l'eventuale NUOVO idxStato
|
||||
SET @nextIdxStato = ISNULL( (SELECT next_IdxStato FROM TransizioneStati
|
||||
WHERE IdxFamiglia = @IdxFamiglia AND IdxStato = @currIdxStato AND IdxTipo = @IdxTipo ), @currIdxStato )
|
||||
|
||||
-- SE lo stato cambia registro nel DiarioDiBordo!
|
||||
IF (@nextIdxStato <> @currIdxStato)
|
||||
BEGIN
|
||||
-- inserisco in DiarioDiBordo
|
||||
INSERT INTO DiarioDiBordo
|
||||
(IdxMacchina, InizioStato, FineStato, IdxStato, MatricolaKanban, Value, MatrOpr, pallet)
|
||||
VALUES (@IdxMacchina, @InizioStato, NULL, @nextIdxStato, @MatricolaKanban, @Value, @MatrOpr, @pallet)
|
||||
|
||||
-- infine imposto il nuovo stato current...
|
||||
SET @currIdxStato = @nextIdxStato
|
||||
SET @ContaInsert = @ContaInsert + 1
|
||||
END
|
||||
|
||||
-- Get the next values
|
||||
FETCH NEXT FROM event2proc
|
||||
INTO @InizioStato, @IdxTipo, @MatricolaKanban, @Value, @MatrOpr, @pallet, @TabAzione, @Azione;
|
||||
|
||||
END
|
||||
CLOSE event2proc;
|
||||
DEALLOCATE event2proc;
|
||||
|
||||
-- resetto microStato a 1
|
||||
UPDATE dbo.MicroStatoMacchina
|
||||
SET IdxMicroStato = 1,
|
||||
InizioStato = @InizioStato,
|
||||
Value = '0'
|
||||
WHERE IdxMacchina = @idxMacchina
|
||||
|
||||
-- fa un controllo: elimina eventuali dichairazioni in DDB SE durata < 0...
|
||||
DELETE FROM DiarioDiBordo WHERE DurataMinuti < 0 AND IdxMacchina = @idxMacchina
|
||||
|
||||
-- RI-ATTIVO inserimento in DiarioDiBordo per la macchina indicata
|
||||
UPDATE DatiMacchine
|
||||
SET insEnabled = 1
|
||||
WHERE IdxMacchina = @IdxMacchina
|
||||
|
||||
PRINT 'concluso UPDATE tabelle...' + 'INSERT DiarioBordo : ' + CONVERT(VARCHAR(30),@ContaInsert)
|
||||
|
||||
--DBCC SHOWCONTIG(EventList)
|
||||
--DBCC SHOWCONTIG(DiarioDiBordo)
|
||||
--EXEC USP_DisableEnableNonClusteredIndexes @Database,null, 2 --riattivo indici
|
||||
|
||||
--ricostruisco indici X QUESTE TABELLE DOPPIA RICOSTRUZIONE INDICI NON NECESSARIA
|
||||
--PRINT 'ricostruisco indici...'
|
||||
--DBCC DBREINDEX(EventList)
|
||||
--DBCC DBREINDEX(DiarioDiBordo)
|
||||
--DBCC DBREINDEX(TransizioneIngressi)
|
||||
--DBCC DBREINDEX(Kanban2ins)
|
||||
--DBCC DBREINDEX(Kanban)
|
||||
--DBCC DBREINDEX(AnagraficaOperatori)
|
||||
--DBCC DBREINDEX(AnagraficaOperatori2ins)
|
||||
|
||||
--DBCC SHOWCONTIG(EventList)
|
||||
--DBCC SHOWCONTIG(DiarioDiBordo)
|
||||
|
||||
RETURN
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
/*************************************
|
||||
* STORED PROCEDURE stp_EL_processaEvento
|
||||
* Processa un singolo evento
|
||||
*
|
||||
* Note : richiamata anche nel trigger della tabella EventList
|
||||
*
|
||||
* modif.:
|
||||
**************************************/
|
||||
alter PROCEDURE stp_EL_processaEvento
|
||||
(
|
||||
@IdxTipo INT,
|
||||
@IdxMacchina NVARCHAR(50),
|
||||
@MatricolaKanban NVARCHAR(50),
|
||||
@DataOra DATETIME,
|
||||
@NumPz INT,
|
||||
@FlgAggStato CHAR(1) = 'Y', -- Y/N = elabora o meno aggiornamento StatiMacchine e DatiMacchine
|
||||
@FlgAggTempiC CHAR(1) = 'N' -- Y/N = elabora o meno i tempi ciclo
|
||||
)
|
||||
AS
|
||||
|
||||
---- parametri x test
|
||||
--DECLARE @IdxTipo INT = 0
|
||||
--DECLARE @IdxMacchina NVARCHAR(50)
|
||||
--DECLARE @DataOra DATETIME
|
||||
--DECLARE @MatricolaKanban NVARCHAR(50)
|
||||
--DECLARE @TCMedio DECIMAL(18,8)
|
||||
--DECLARE @NumPz INT
|
||||
|
||||
--SET @IdxTipo = ( SELECT i.IdxTipo FROM inserted i )
|
||||
--SET @IdxMacchina = ( SELECT i.IdxMacchina FROM inserted i )
|
||||
--SET @DataOra = ( SELECT i.InizioStato FROM inserted i )
|
||||
--SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
||||
--SET @NumPz = ( SELECT CASE WHEN (ISNUMERIC(value)=1) THEN value ELSE 1 END FROM inserted i )
|
||||
|
||||
-- INIZIO DICHIARAZIONI
|
||||
DECLARE @TabAzione NVARCHAR(50) = '';
|
||||
DECLARE @Azione NVARCHAR(50) = '';
|
||||
DECLARE @CodArticolo NVARCHAR(50) = ''
|
||||
DECLARE @MatricolaKanbanOk NVARCHAR(50);
|
||||
DECLARE @DataOraPrec DATETIME;
|
||||
DECLARE @TCMedio DECIMAL(18,8) = 0;
|
||||
|
||||
/* recupero altri valori ( se non trova record lascia il valore invariato cioè = '' )*/
|
||||
SELECT @TabAzione = ISNULL(TabAzione,'')
|
||||
, @Azione = ISNULL(Azione,'')
|
||||
FROM AnagraficaEventi WHERE IdxTipo = @IdxTipo
|
||||
|
||||
--SELECT @TabAzione , @Azione
|
||||
|
||||
---- SOLO se lo stato della macchina è VERDE ( lavora ) devo aggiornare i tempi ciclo
|
||||
---- NON VA BENE QUANDO FA RICALCOLO NON C'é NULL
|
||||
--IF EXISTS ( SELECT D.IdxStato FROM dbo.DiarioDiBordo AS D
|
||||
-- INNER JOIN dbo.AnagraficaStati AS S ON d.idxStato = S.IdxStato
|
||||
-- WHERE d.IdxMacchina = @IdxMacchina AND d.FineStato IS NULL AND s.Semaforo = 'V' )
|
||||
-- SET @FlgAggTempiC = 'Y'
|
||||
|
||||
IF (@TabAzione <> '' AND @Azione <> '')
|
||||
BEGIN
|
||||
/* azioni richieste: seconda dei casi eseguo... */
|
||||
|
||||
/******************************************
|
||||
*
|
||||
* Calcolo tempo ciclo per INIZIO
|
||||
*
|
||||
******************************************/
|
||||
IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Insert' AND @FlgAggTempiC = 'Y' )
|
||||
BEGIN
|
||||
-- recupero codice articolo
|
||||
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanban )
|
||||
/* calcolo tempo tra gli ultimi 2 eventi "contapezzi" */
|
||||
SET @DataOraPrec = ISNULL((SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina
|
||||
AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra )
|
||||
|
||||
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
||||
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
||||
SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
||||
ELSE
|
||||
SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
||||
|
||||
/* inserisco riga di tempo ciclo */
|
||||
INSERT INTO TempiCicloRilevati
|
||||
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
||||
END
|
||||
/******************************************
|
||||
*
|
||||
* Calcolo tempo ciclo con logica stop/start
|
||||
*
|
||||
******************************************/
|
||||
ELSE IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Stop2StartCiclo' AND @FlgAggTempiC = 'Y' )
|
||||
BEGIN
|
||||
/* prendo la matricola dall'evento inizio (precedente) */
|
||||
SET @MatricolaKanbanOk = ISNULL((SELECT Top 1 MatricolaKanban FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo - 1 AND InizioStato < @DataOra ORDER BY InizioStato DESC), @MatricolaKanban )
|
||||
|
||||
-- calcolare num pezzi da codice...
|
||||
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
||||
/* calcolo tempo tra eventi "contapezzi" inizio - fine NB: idxEvento per fine è idxEvento inizio + 1 ... HARD CODED!!! */
|
||||
SET @DataOraPrec = ISNULL((SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo - 1 AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra )
|
||||
|
||||
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
||||
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
||||
SET @TCMedio = ( DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) --calcolo in secondi
|
||||
ELSE
|
||||
SET @TCMedio = ( DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 )
|
||||
|
||||
/* inserisco riga di tempo ciclo */
|
||||
INSERT INTO TempiCicloRilevati
|
||||
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
||||
END
|
||||
/******************************************
|
||||
*
|
||||
* calcolo tempo ciclo con logica stop/stop
|
||||
*
|
||||
******************************************/
|
||||
ELSE IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Stop2StopCiclo' AND @FlgAggTempiC = 'Y' )
|
||||
BEGIN
|
||||
/* prendo la matricola dall'evento inizio (precedente) */
|
||||
SET @MatricolaKanbanOk = ISNULL((SELECT Top 1 MatricolaKanban FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @MatricolaKanban )
|
||||
|
||||
-- calcolare num pezzi da codice...
|
||||
SET @NumPz = ( SELECT PzPallet FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
||||
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
||||
/* calcolo tempo tra eventi "contapezzi" fine - fine NB: idxEvento per fine è idxEvento inizio + 1 ... HARD CODED!!! */
|
||||
SET @DataOraPrec = ISNULL( (SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra )
|
||||
|
||||
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
||||
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
||||
SET @TCMedio = ( DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) --calcolo in secondi
|
||||
ELSE
|
||||
SET @TCMedio = ( DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 )
|
||||
|
||||
/* inserisco riga di tempo ciclo */
|
||||
INSERT INTO TempiCicloRilevati
|
||||
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
||||
END
|
||||
|
||||
/******************************************
|
||||
*
|
||||
* Aggiorno kanban in dati macchine per
|
||||
* INIZIO ATTREZZAGGIO
|
||||
*
|
||||
******************************************/
|
||||
ELSE IF(@TabAzione = 'DatiMacchine' AND @Azione = 'Inizio' AND @FlgAggStato = 'Y')
|
||||
BEGIN
|
||||
/* aggiorno riga di dati macchina */
|
||||
UPDATE DatiMacchine
|
||||
SET kanban_A = @MatricolaKanban,
|
||||
kanban_B = @MatricolaKanban
|
||||
WHERE idxMacchina = @IdxMacchina
|
||||
/* aggiorno stato macchina */
|
||||
UPDATE StatoMacchine
|
||||
SET MatricolaKanban = @MatricolaKanban
|
||||
WHERE idxMacchina = @IdxMacchina
|
||||
/* aggiorno dati kanban statoMacchine... */
|
||||
UPDATE StatoMacchine
|
||||
SET KanbanCode = k.KanbanCode, TempoCicloBase = k.TempoCicloBase, PzPalletProd = k.PzPallet
|
||||
FROM Kanban AS k
|
||||
INNER JOIN StatoMacchine ON k.MatricolaKanban = StatoMacchine.MatricolaKanban
|
||||
WHERE (StatoMacchine.idxMacchina = @IdxMacchina)
|
||||
END
|
||||
/******************************************
|
||||
*
|
||||
* Aggiorno kanban in dati macchine per
|
||||
* FINE PRODUZIONE
|
||||
*
|
||||
******************************************/
|
||||
ELSE IF(@TabAzione = 'DatiMacchine' AND @Azione = 'Fine' AND @FlgAggStato = 'Y')
|
||||
BEGIN
|
||||
/* calcolo valori */
|
||||
SET @MatricolaKanban = 'KAND' -- kanban non definito !!!HARD CODED!!!
|
||||
/* aggiorno riga di dati macchina */
|
||||
UPDATE DatiMacchine
|
||||
SET kanban_A = @MatricolaKanban,
|
||||
kanban_B = @MatricolaKanban
|
||||
WHERE idxMacchina = @IdxMacchina
|
||||
/* aggiorno stato macchina */
|
||||
UPDATE StatoMacchine
|
||||
SET MatricolaKanban = @MatricolaKanban
|
||||
WHERE idxMacchina = @IdxMacchina
|
||||
/* aggiorno dati kanban statoMacchine... */
|
||||
UPDATE StatoMacchine
|
||||
SET KanbanCode = k.KanbanCode, TempoCicloBase = k.TempoCicloBase, PzPalletProd = k.PzPallet
|
||||
FROM Kanban AS k INNER JOIN StatoMacchine ON k.MatricolaKanban = StatoMacchine.MatricolaKanban
|
||||
WHERE (StatoMacchine.idxMacchina = @IdxMacchina)
|
||||
|
||||
END
|
||||
END
|
||||
|
||||
RETURN
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
/***************************************************
|
||||
* Trigger trg_doActions
|
||||
*
|
||||
* processa eventuali azioni legate ad un inserimento evento
|
||||
*
|
||||
* modificato: S.E.L.
|
||||
* 2011.05.18
|
||||
*
|
||||
***************************************************/
|
||||
alter TRIGGER trg_doActions
|
||||
ON EventList
|
||||
FOR INSERT
|
||||
AS
|
||||
/* dichiarazione variabili */
|
||||
DECLARE @IdxTipo INT
|
||||
DECLARE @TabAzione NVARCHAR(50)
|
||||
DECLARE @Azione NVARCHAR(50)
|
||||
DECLARE @IdxMacchina NVARCHAR(50)
|
||||
DECLARE @MatricolaKanban NVARCHAR(50)
|
||||
DECLARE @MatricolaKanbanOk NVARCHAR(50)
|
||||
DECLARE @CodArticolo NVARCHAR(50)
|
||||
DECLARE @TCMedio DECIMAL(18,8)
|
||||
DECLARE @DataOra DATETIME
|
||||
DECLARE @DataOraPrec DATETIME
|
||||
DECLARE @NumPz INT
|
||||
DECLARE @FlgAggTempiC CHAR(1) = 'N' -- Y/N = elabora o meno i tempi ciclo
|
||||
|
||||
|
||||
/* recupero valori dell'INSERT */
|
||||
SET @IdxTipo = ( SELECT i.IdxTipo FROM inserted i )
|
||||
SET @IdxMacchina = ( SELECT i.IdxMacchina FROM inserted i )
|
||||
SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
||||
SET @DataOra = ( SELECT i.InizioStato FROM inserted i )
|
||||
SET @NumPz = ( SELECT CASE WHEN (ISNUMERIC(value)=1) THEN value ELSE 1 END FROM inserted i )
|
||||
|
||||
-- SOLO SE lo stato della macchina è VERDE ( lavora ) devo aggiornare i tempi ciclo
|
||||
IF EXISTS ( SELECT M.IdxStato FROM dbo.StatoMacchine AS M
|
||||
INNER JOIN dbo.AnagraficaStati AS S ON M.idxStato = S.IdxStato
|
||||
WHERE M.IdxMacchina = @IdxMacchina AND s.Semaforo = 'V' )
|
||||
SET @FlgAggTempiC = 'Y'
|
||||
|
||||
EXECUTE dbo.stp_EL_processaEvento @IdxTipo, @IdxMacchina, @MatricolaKanban, @DataOra, @NumPz, 'Y', @FlgAggTempiC
|
||||
|
||||
/* SOSTITUITA CON STORED
|
||||
|
||||
/* controllo se l'evento richieda azioni successive */
|
||||
IF(@TabAzione <> '' AND @Azione <> '')
|
||||
BEGIN
|
||||
/* azioni richieste: seconda dei casi eseguo... */
|
||||
|
||||
/******************************************
|
||||
*
|
||||
* Calcolo tempo ciclo per INIZIO
|
||||
*
|
||||
******************************************/
|
||||
IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Insert')
|
||||
BEGIN
|
||||
/* calcolo valori */
|
||||
SET @DataOra = ( SELECT i.InizioStato FROM inserted i )
|
||||
SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
||||
SET @NumPz = ( SELECT CASE WHEN (ISNUMERIC(value)=1) THEN value ELSE 1 END FROM inserted i )
|
||||
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanban )
|
||||
/* calcolo tempo tra gli ultimi 2 eventi "contapezzi" */
|
||||
SET @DataOraPrec = ( SELECT ISNULL((SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra ) )
|
||||
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
||||
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
||||
BEGIN
|
||||
SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
||||
END
|
||||
-- versione vecchia (blocco se oltre 24 gg di fermo...)
|
||||
--BEGIN TRY
|
||||
-- /* è in millisecondi, divido per 60'000.00 x avere minuti centesimali*/
|
||||
-- SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
||||
--END TRY
|
||||
--BEGIN CATCH
|
||||
-- SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
||||
--END CATCH
|
||||
/* inserisco riga di tempo ciclo */
|
||||
INSERT INTO TempiCicloRilevati
|
||||
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
||||
END
|
||||
/******************************************
|
||||
*
|
||||
* Calcolo tempo ciclo con logica stop/start
|
||||
*
|
||||
******************************************/
|
||||
ELSE IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Stop2StartCiclo')
|
||||
BEGIN
|
||||
/* calcolo valori */
|
||||
SET @DataOra = ( SELECT i.InizioStato FROM inserted i )
|
||||
SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
||||
/* prendo la matricola dall'evento inizio (precedente) */
|
||||
SET @MatricolaKanbanOk = ( SELECT ISNULL((SELECT Top 1 MatricolaKanban FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo - 1 AND InizioStato < @DataOra ORDER BY InizioStato DESC), @MatricolaKanban ) )
|
||||
|
||||
-- calcolare num pezzi da codice...
|
||||
SET @NumPz = ( SELECT CASE WHEN (ISNUMERIC(value)=1) THEN value ELSE 1 END FROM inserted i )
|
||||
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
||||
/* calcolo tempo tra eventi "contapezzi" inizio - fine NB: idxEvento per fine è idxEvento inizio + 1 ... HARD CODED!!! */
|
||||
SET @DataOraPrec = ( SELECT ISNULL((SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo - 1 AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra ) )
|
||||
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
||||
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
||||
BEGIN
|
||||
SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
||||
END
|
||||
-- versione vecchia (blocco se oltre 24 gg di fermo...)
|
||||
--BEGIN TRY
|
||||
-- /* è in millisecondi, divido per 60'000.00 x avere minuti centesimali*/
|
||||
-- SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
||||
--END TRY
|
||||
--BEGIN CATCH
|
||||
-- SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
||||
--END CATCH
|
||||
/* inserisco riga di tempo ciclo */
|
||||
INSERT INTO TempiCicloRilevati
|
||||
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
||||
END
|
||||
/******************************************
|
||||
*
|
||||
* calcolo tempo ciclo con logica stop/stop
|
||||
*
|
||||
******************************************/
|
||||
ELSE IF(@TabAzione = 'TempiCicloRilevati' AND @Azione = 'Stop2StopCiclo')
|
||||
BEGIN
|
||||
/* calcolo valori */
|
||||
SET @DataOra = ( SELECT i.InizioStato FROM inserted i )
|
||||
SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
||||
/* prendo la matricola dall'evento inizio (precedente) */
|
||||
SET @MatricolaKanbanOk = ( SELECT ISNULL((SELECT Top 1 MatricolaKanban FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @MatricolaKanban ) )
|
||||
|
||||
-- calcolare num pezzi da codice...
|
||||
SET @NumPz = ( SELECT PzPallet FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
||||
SET @CodArticolo = ( SELECT CodArticolo FROM Kanban WHERE MatricolaKanban = @MatricolaKanbanOk )
|
||||
/* calcolo tempo tra eventi "contapezzi" fine - fine NB: idxEvento per fine è idxEvento inizio + 1 ... HARD CODED!!! */
|
||||
SET @DataOraPrec = ( SELECT ISNULL((SELECT Top 1 InizioStato FROM EventList WHERE IdxMacchina = @IdxMacchina AND IdxTipo = @IdxTipo AND InizioStato < @DataOra ORDER BY InizioStato DESC), @DataOra ) )
|
||||
-- se è oltre 10 gg calcolo in secondi... 2013.8.30
|
||||
IF (DATEDIFF(DD, @DataOraPrec, @DataOra) > 10)
|
||||
BEGIN
|
||||
SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
||||
END
|
||||
-- versione vecchia (blocco se oltre 24 gg di fermo...)
|
||||
--BEGIN TRY
|
||||
-- /* è in millisecondi, divido per 60'000.00 x avere minuti centesimali*/
|
||||
-- SET @TCMedio = ( SELECT (DATEDIFF(ms, @DataOraPrec, @DataOra) / 60000.00 ) )
|
||||
--END TRY
|
||||
--BEGIN CATCH
|
||||
-- SET @TCMedio = ( SELECT (DATEDIFF(s, @DataOraPrec, @DataOra) / 60.00 ) ) --calcolo in secondi
|
||||
--END CATCH
|
||||
/* inserisco riga di tempo ciclo */
|
||||
BEGIN TRY
|
||||
INSERT INTO TempiCicloRilevati
|
||||
VALUES(@IdxMacchina, @CodArticolo, @DataOra, @TCMedio, @NumPz)
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
-- dovrei loggare...
|
||||
END CATCH
|
||||
END
|
||||
/******************************************
|
||||
*
|
||||
* Aggiorno kanban in dati macchine per
|
||||
* INIZIO ATTREZZAGGIO
|
||||
*
|
||||
******************************************/
|
||||
ELSE IF(@TabAzione = 'DatiMacchine' AND @Azione = 'Inizio')
|
||||
BEGIN
|
||||
/* calcolo valori */
|
||||
SET @MatricolaKanban = ( SELECT i.MatricolaKanban FROM inserted i )
|
||||
/* aggiorno riga di dati macchina */
|
||||
UPDATE DatiMacchine
|
||||
SET kanban_A = @MatricolaKanban,
|
||||
kanban_B = @MatricolaKanban
|
||||
WHERE idxMacchina = @IdxMacchina
|
||||
/* aggiorno stato macchina */
|
||||
UPDATE StatoMacchine
|
||||
SET MatricolaKanban = @MatricolaKanban
|
||||
WHERE idxMacchina = @IdxMacchina
|
||||
/* aggiorno dati kanban statoMacchine... */
|
||||
UPDATE StatoMacchine
|
||||
SET KanbanCode = k.KanbanCode, TempoCicloBase = k.TempoCicloBase, PzPalletProd = k.PzPallet
|
||||
FROM Kanban AS k INNER JOIN StatoMacchine ON k.MatricolaKanban = StatoMacchine.MatricolaKanban
|
||||
WHERE (StatoMacchine.idxMacchina = @IdxMacchina)
|
||||
END
|
||||
/******************************************
|
||||
*
|
||||
* Aggiorno kanban in dati macchine per
|
||||
* FINE PRODUZIONE
|
||||
*
|
||||
******************************************/
|
||||
ELSE IF(@TabAzione = 'DatiMacchine' AND @Azione = 'Fine')
|
||||
BEGIN
|
||||
/* calcolo valori */
|
||||
SET @MatricolaKanban = 'KAND' -- kanban non definito !!!HARD CODED!!!
|
||||
/* aggiorno riga di dati macchina */
|
||||
UPDATE DatiMacchine
|
||||
SET kanban_A = @MatricolaKanban,
|
||||
kanban_B = @MatricolaKanban
|
||||
WHERE idxMacchina = @IdxMacchina
|
||||
/* aggiorno stato macchina */
|
||||
UPDATE StatoMacchine
|
||||
SET MatricolaKanban = @MatricolaKanban
|
||||
WHERE idxMacchina = @IdxMacchina
|
||||
/* aggiorno dati kanban statoMacchine... */
|
||||
UPDATE StatoMacchine
|
||||
SET KanbanCode = k.KanbanCode, TempoCicloBase = k.TempoCicloBase, PzPalletProd = k.PzPallet
|
||||
FROM Kanban AS k INNER JOIN StatoMacchine ON k.MatricolaKanban = StatoMacchine.MatricolaKanban
|
||||
WHERE (StatoMacchine.idxMacchina = @IdxMacchina)
|
||||
|
||||
END
|
||||
END
|
||||
*/
|
||||
|
||||
-- INFINE CHIAMO REFRESH TAB STATO...
|
||||
EXEC stp_MSE_refresh @IdxMacchina
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
set xact_abort on;
|
||||
go
|
||||
|
||||
begin transaction;
|
||||
go
|
||||
|
||||
set ANSI_NULLS on;
|
||||
go
|
||||
|
||||
-- ================================================
|
||||
-- Author: Samuele E. Locatelli
|
||||
-- Create date: 2012.11.23
|
||||
--
|
||||
-- Description: rigenerazione del diario di bordo
|
||||
-- a partire da macchina eventi/stati + EventList
|
||||
-- ================================================
|
||||
alter PROCEDURE man.stp_ricalcolaDatiMacchinaFromDate
|
||||
(
|
||||
@idxMacchina NVARCHAR(50),
|
||||
@inizio DATETIME,
|
||||
@idxStatoStart INT = 1
|
||||
)
|
||||
AS
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
DECLARE @fine DATETIME
|
||||
|
||||
--DBCC SHOWCONTIG(EventList)
|
||||
--DBCC SHOWCONTIG(DiarioDiBordo)
|
||||
|
||||
/* DA USARE ? Verificare */
|
||||
--DECLARE @Database AS SYSNAME;
|
||||
--SET @Database = DB_NAME()
|
||||
--EXEC USP_DisableEnableNonClusteredIndexes @Database ,null, 1 -- disabilito indici
|
||||
|
||||
-- update SAM 2013.10.24: "torno indietro" di 2 eventi rispetto alal data ora indicata come start, SE CI SONO
|
||||
SELECT @inizio = ISNULL(MIN(InizioStato),@inizio) FROM
|
||||
(
|
||||
SELECT TOP 3 InizioStato
|
||||
FROM DiarioDiBordo
|
||||
WHERE IdxMacchina = @idxMacchina AND InizioStato < @inizio
|
||||
ORDER BY InizioStato DESC
|
||||
) AS tbl
|
||||
|
||||
|
||||
-- DISATTIVO inserimento in DiarioDiBordo per la macchina indicata
|
||||
-- DEVE disattivare anche il caricamento degli eventi
|
||||
UPDATE DatiMacchine
|
||||
SET insEnabled = 0
|
||||
WHERE IdxMacchina = @IdxMacchina
|
||||
|
||||
-- devo sempre rielaborare tutti gli eventi fino a dataora odierna o a ultimo evento in diario di bordo
|
||||
SET @fine = ( SELECT MAX(InizioStato) FROM DiarioDiBordo
|
||||
WHERE idxMacchina = @idxMacchina )
|
||||
|
||||
-- svuoto dati che vado a sostituire
|
||||
PRINT 'svuoto TempiCicloRilevati per periodo indicato...'
|
||||
DELETE FROM TempiCicloRilevati WHERE idxMacchina = @idxMacchina AND DataOraRif BETWEEN @inizio AND @fine
|
||||
|
||||
PRINT 'svuoto DiarioDiBordo per periodo indicato...'
|
||||
EXEC stp_DDB_deleteMacchinaPeriodo @idxMacchina, @inizio, @fine -- cancella diario di bordo
|
||||
|
||||
PRINT 'processo EventList per periodo indicato...'
|
||||
DECLARE @InizioStato DATETIME
|
||||
DECLARE @IdxTipo INT
|
||||
DECLARE @MatricolaKanban NVARCHAR(50)
|
||||
DECLARE @Value NVARCHAR(50)
|
||||
DECLARE @MatrOpr INT
|
||||
DECLARE @pallet NVARCHAR(20)
|
||||
DECLARE @nextIdxStato INT
|
||||
DECLARE @currIdxStato INT
|
||||
DECLARE @IdxFamiglia INT
|
||||
DECLARE @TabAzione NVARCHAR(50) = '';
|
||||
DECLARE @Azione NVARCHAR(50) = '';
|
||||
DECLARE @FlgAggTempiC CHAR(1) = 'N'; -- Y/N = elabora o meno i tempi ciclo
|
||||
|
||||
-- calcolo famiglia macchina!
|
||||
SET @IdxFamiglia = ( SELECT IdxFamiglia FROM Macchine2FamiglieMacchine WHERE idxMacchina = @idxMacchina )
|
||||
|
||||
-- Recupero stato precedente, altrimenti ipotizzo macchina inizialmente in stato richiesto (default: 1 = pronta) e quindi imposto stato current a quello iniziale richiesto...
|
||||
SET @currIdxStato = ISNULL( ( SELECT TOP 1 IdxStato FROM DiarioDiBordo WHERE IdxMacchina = @idxMacchina AND InizioStato < @inizio
|
||||
ORDER BY InizioStato DESC ) , @idxStatoStart)
|
||||
|
||||
-- verifico i record elaborati
|
||||
SELECT COUNT(*)
|
||||
FROM EventList AS e
|
||||
LEFT JOIN dbo.AnagraficaEventi AS a ON e.idxTipo = a.IdxTipo
|
||||
WHERE e.IdxMacchina = @idxMacchina
|
||||
AND e.InizioStato BETWEEN @inizio AND @fine
|
||||
|
||||
-- leggo la tabella degli eventi con cursore x percorrere i dati...
|
||||
DECLARE event2proc CURSOR FOR
|
||||
SELECT e.InizioStato, e.IdxTipo, e.MatricolaKanban, e.Value, e.MatrOpr, e.pallet,
|
||||
a.TabAzione, a.Azione
|
||||
FROM EventList AS e
|
||||
LEFT JOIN dbo.AnagraficaEventi AS a ON e.idxTipo = a.IdxTipo
|
||||
WHERE e.IdxMacchina = @idxMacchina
|
||||
AND e.InizioStato BETWEEN @inizio AND @fine
|
||||
ORDER BY e.InizioStato;
|
||||
/*
|
||||
SELECT InizioStato, IdxTipo, MatricolaKanban, Value, MatrOpr, pallet
|
||||
FROM EventList
|
||||
WHERE IdxMacchina = @idxMacchina
|
||||
AND InizioStato BETWEEN @inizio AND @fine
|
||||
ORDER BY InizioStato;
|
||||
*/
|
||||
OPEN event2proc;
|
||||
|
||||
FETCH NEXT FROM event2proc
|
||||
INTO @InizioStato, @IdxTipo, @MatricolaKanban, @Value, @MatrOpr, @pallet, @TabAzione, @Azione;
|
||||
|
||||
DECLARE @NumPz INT = 1;
|
||||
DECLARE @ContaInsert INT = 0;
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
|
||||
IF ( ISNULL(@TabAzione,'') <> '' AND ISNULL(@Azione,'') <> '')
|
||||
BEGIN
|
||||
SET @NumPz = CASE WHEN (ISNUMERIC(@Value)=1) THEN @Value ELSE 1 END
|
||||
-- controllo se devo aggiornare i Tempi ciclo in base allo stato macchina ( se null resta precedente )
|
||||
SELECT @FlgAggTempiC = ( CASE Semaforo WHEN 'V' THEN 'Y' ELSE 'N' END ) FROM dbo.AnagraficaStati
|
||||
WHERE IdxStato = @currIdxStato
|
||||
EXEC dbo.stp_EL_processaEvento @IdxTipo, @idxMacchina, @MatricolaKanban, @InizioStato, @NumPz, 'N', @FlgAggTempiC
|
||||
END
|
||||
|
||||
-- calcolo l'eventuale NUOVO idxStato
|
||||
SET @nextIdxStato = ISNULL( (SELECT next_IdxStato FROM TransizioneStati
|
||||
WHERE IdxFamiglia = @IdxFamiglia AND IdxStato = @currIdxStato AND IdxTipo = @IdxTipo ), @currIdxStato )
|
||||
|
||||
-- SE lo stato cambia registro nel DiarioDiBordo!
|
||||
IF (@nextIdxStato <> @currIdxStato)
|
||||
BEGIN
|
||||
-- inserisco in DiarioDiBordo
|
||||
INSERT INTO DiarioDiBordo
|
||||
(IdxMacchina, InizioStato, FineStato, IdxStato, MatricolaKanban, Value, MatrOpr, pallet)
|
||||
VALUES (@IdxMacchina, @InizioStato, NULL, @nextIdxStato, @MatricolaKanban, @Value, @MatrOpr, @pallet)
|
||||
|
||||
-- infine imposto il nuovo stato current...
|
||||
SET @currIdxStato = @nextIdxStato
|
||||
SET @ContaInsert = @ContaInsert + 1
|
||||
END
|
||||
|
||||
-- Get the next values
|
||||
FETCH NEXT FROM event2proc
|
||||
INTO @InizioStato, @IdxTipo, @MatricolaKanban, @Value, @MatrOpr, @pallet, @TabAzione, @Azione;
|
||||
|
||||
END
|
||||
CLOSE event2proc;
|
||||
DEALLOCATE event2proc;
|
||||
|
||||
-- resetto microStato a 1
|
||||
UPDATE dbo.MicroStatoMacchina
|
||||
SET IdxMicroStato = 1,
|
||||
InizioStato = @InizioStato,
|
||||
Value = '0'
|
||||
WHERE IdxMacchina = @idxMacchina
|
||||
|
||||
-- fa un controllo: elimina eventuali dichairazioni in DDB SE durata < 0...
|
||||
DELETE FROM DiarioDiBordo WHERE DurataMinuti < 0 AND IdxMacchina = @idxMacchina
|
||||
|
||||
-- RI-ATTIVO inserimento in DiarioDiBordo per la macchina indicata
|
||||
UPDATE DatiMacchine
|
||||
SET insEnabled = 1
|
||||
WHERE IdxMacchina = @IdxMacchina
|
||||
|
||||
PRINT 'concluso UPDATE tabelle...' + 'INSERT DiarioBordo : ' + CONVERT(VARCHAR(30),@ContaInsert)
|
||||
|
||||
--DBCC SHOWCONTIG(EventList)
|
||||
--DBCC SHOWCONTIG(DiarioDiBordo)
|
||||
--EXEC USP_DisableEnableNonClusteredIndexes @Database,null, 2 --riattivo indici
|
||||
|
||||
--ricostruisco indici X QUESTE TABELLE DOPPIA RICOSTRUZIONE INDICI NON NECESSARIA
|
||||
--PRINT 'ricostruisco indici...'
|
||||
--DBCC DBREINDEX(EventList)
|
||||
--DBCC DBREINDEX(DiarioDiBordo)
|
||||
--DBCC DBREINDEX(TransizioneIngressi)
|
||||
--DBCC DBREINDEX(Kanban2ins)
|
||||
--DBCC DBREINDEX(Kanban)
|
||||
--DBCC DBREINDEX(AnagraficaOperatori)
|
||||
--DBCC DBREINDEX(AnagraficaOperatori2ins)
|
||||
|
||||
--DBCC SHOWCONTIG(EventList)
|
||||
--DBCC SHOWCONTIG(DiarioDiBordo)
|
||||
|
||||
RETURN
|
||||
go
|
||||
|
||||
commit;
|
||||
go
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- registro versione...
|
||||
INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(409, GETDATE())
|
||||
GO
|
||||
|
||||
SELECT TOP 10 * FROM LogUpdateDb ORDER BY Versione DESC
|
||||
GO
|
||||
Reference in New Issue
Block a user