(SQL SERVER 2017)

Buongiorno a tutti.

Utilizzo il tipo dato rowversion (timestamp) per verificare l'avvenuta modifica in una riga della tabella.

Volevo sapere se è possibile sapere esattamente quali sono le colonne (o la colonna) dove sono cambiati i valori della riga modificata.

Intendo dire senza scrivere trigger di log e/o script di confronto.

grazie

Filippo
salve Filippo,
con la sola colonna RowVersion non hai a disposizione queste informazioni... l'unica informazione disponibile e' che la riga e' cambiata dal momento che l'hai "letta"...

per avere le informazioni che qui richiedi, devi passare per un versioning molto piu' approfondito con l'implementazione di version temporal tables (vedi ad esempio https://www.sqlshack.com/track-history-data-changes-using-sql-server-2016-system-versioned-temporal-tables/) ...

oppure, dipendentemente dalle tue necessita', che possono essere "inferiori" alla completa implementazione di cui sopra, ma che richiede comunque una corretta gestione dei puntatori in linked list per scalare/discendere la scala delle variazioni, puoi, come tu stesso hai indicato, procedere tramite appositi triggers...

salutoni omnia
--
Andrea

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.