Dato non ci sono risposte ancora, qui sono i miei 2 centesimi:
- per l'inserimento, vorrei utilizzare un campo datetime con GETDATE valore di default()
- Per Update, vorrei utilizzare anche una DateTime campo modificato dal trigger ogni volta che c'è un aggiornamento.
- per l'eliminazione, il record non sarà disponibile, quindi non è possibile interrogare esso.
Ho pensato di utilizzare Timestamp per evitare i trigger, ma non è possibile convertire Timestamp in Datetime.
EDIT: O forse è possibile utilizzare un "metatabella" dove nei trigger potrete salvare la modifica Date
CREATE TABLE metatable (
table_name VARCHAR(40) NOT NULL PRIMARY KEY,
last_insert DATETIME NOT NULL,
last_update DATETIME NOT NULL,
last_delete DATETIME NOT NULL
)
INSERT metatable VALUES ('table1', GETDATE(), GETDATE(), GETDATE())
CREATE TRIGGER trg_table1_ins ON table1 FOR INSERT AS BEGIN
UPDATE metatable SET last_insert = GETDATE() WHERE table_name = 'table1'
END
CREATE TRIGGER trg_table1_upd ON table1 FOR UPDATE AS BEGIN
UPDATE metatable SET last_update = GETDATE() WHERE table_name = 'table1'
END
CREATE TRIGGER trg_table1_del ON table1 FOR DELETE AS BEGIN
UPDATE metatable SET last_delete = GETDATE() WHERE table_name = 'table1'
END
spero che sia utile
fonte
2009-08-04 14:08:08
La risposta è stata accettata è fuorviante al meglio. –