it-swarm.it

Trovare l'ultima volta che una tabella è stata aggiornata

La domanda:

SELECT 
    name AS TableName, 
    create_date AS CreatedDate, 
    modify_date as ModifyDate 
FROM sys.tables 
order by ModifyDate;

... mi dirà l'ultima volta che una tabella è stata creata e modificata (dal punto di vista DDL). Ma voglio sapere l'ultima volta che i dati effettivi sono stati inseriti o rimossi dalla tabella. È possibile ottenere questo in SQL Server?

18
dublintech

Potresti essere in grado di ottenere un'idea da

SELECT last_user_update
FROM   sys.dm_db_index_usage_stats us
       JOIN sys.tables t
         ON t.object_id = us.object_id
WHERE  database_id = db_id()
       AND t.object_id = object_id('dbo.YourTable') 

ma i dati non persistono tra tutti i riavvii del servizio e potrebbe non essere accurato per le tue esigenze (ad es. in esecuzione DELETE FROM T WHERE 1=0 aggiornerà l'ora anche se nessuna riga è stata effettivamente eliminata)

24
Martin Smith