Salve,
no, @@Identity NON va bene, in quanto parli di UPDATE e non INSERT... utilizzeresti un @@Identity NON riferito al contesto corrente e sarebbe molto sbagliato...
devi utilizzare la tabella virtuale INSERTED, che contiene le modifiche apportate...
qualche cosa quindi simile a
CREATE TRIGGER trg_tableUpdated
ON tableUpdated AFTER UPDATE
AS
IF (@@ROWCOUNT = 0) BEGIN
RETURN;
END;
IF ( UPDATE (Pagata) ) BEGIN
INSERT INTO dbo.Log_Query_Su_Articoli ([data], ora, idDocumento, identOperatoreBanco, idarticolo, qta, operazione)
SELECT GETDATE(),CAST(GETDATE() AS TIME)
, i.Id -- id appena aggiornato
,0, 0, 0, 'Text_string'
FROM inserted i;
END;
GO
dove con una tabella fittizia iniziale definita come
.... dbo.tableUpdated (
Id int,
Dato varchar(1),
Pagata int
);
puoi verificare
GO
INSERT dbo.tableUpdated
VALUES ( 1, 'a', 1 ), ( 2, 'b', 1 );
PRINT 'nessun inserimento';
SELECT *
FROM dbo.Log_Query_Su_Articoli;
----------
PRINT 'update senza modifica Pagata: nessun inserimento';
UPDATE dbo.tableUpdated
SET Dato = Dato
WHERE Id <> 0;
SELECT *
FROM dbo.Log_Query_Su_Articoli;
----------
PRINT 'update modifica Pagata id 1: 1 riga inserita';
UPDATE dbo.tableUpdated
SET Pagata = 2
WHERE Id = 1;
SELECT *
FROM dbo.Log_Query_Su_Articoli;
----------
PRINT 'update modifica Pagata a tutti: 2 righe inserite';
UPDATE dbo.tableUpdated
SET Pagata = 2
WHERE Id <> 0;
SELECT *
FROM dbo.Log_Query_Su_Articoli;
--<------------------
nessun inserimento
Data Ora IdDocumento identOperatoreBanco idarticolo qta Operazione
----------------------- ----------------------- ----------- ------------------- ----------- --------------------------------------- --------------------
update senza modifica Pagata: nessun inserimento
Data Ora IdDocumento identOperatoreBanco idarticolo qta Operazione
----------------------- ----------------------- ----------- ------------------- ----------- --------------------------------------- --------------------
update modifica Pagata id 1: 1 riga inserita
Data Ora IdDocumento identOperatoreBanco idarticolo qta Operazione
----------------------- ----------------------- ----------- ------------------- ----------- --------------------------------------- --------------------
2022-10-28 19:17:38.073 1900-01-01 19:17:38.073 1 0 0 0.0000 Text_string
update modifica Pagata a tutti: 2 righe inserite
Data Ora IdDocumento identOperatoreBanco idarticolo qta Operazione
----------------------- ----------------------- ----------- ------------------- ----------- --------------------------------------- --------------------
2022-10-28 19:17:38.073 1900-01-01 19:17:38.073 1 0 0 0.0000 Text_string
2022-10-28 19:17:38.073 1900-01-01 19:17:38.073 2 0 0 0.0000 Text_string
2022-10-28 19:17:38.073 1900-01-01 19:17:38.073 1 0 0 0.0000 Text_string
salutoni romagnoli
--
Andrea