Znajdowanie ostatniej aktualizacji tabeli


17

Zapytanie:

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

... powie mi, kiedy tabela została utworzona i zmodyfikowana po raz ostatni (z perspektywy DDL). Ale chcę wiedzieć, kiedy ostatnie dane zostały wstawione lub usunięte z tabeli. Czy można to uzyskać w programie SQL Server?

Odpowiedzi:


22

Możesz być w stanie uzyskać pomysł

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') 

ale dane, które nie są utrwalane podczas ponownego uruchamiania usługi i mogą nie być dokładne dla twoich wymagań (np. uruchomienie DELETE FROM T WHERE 1=0zaktualizuje czas, nawet jeśli żadne wiersze nie zostały faktycznie usunięte)


Czy jest jakiś sposób, aby uruchomić to dla wszystkich tabel w bazie danych naraz, zamiast pojedynczej tabeli? dzięki
SQLBoy

3
@SQLBoySELECT last_user_update, t.name FROM sys.dm_db_index_usage_stats us JOIN sys.tables t ON t.object_id = us.object_id WHERE database_id = db_id()
Martin Smith

Data ostatniej aktualizacji użytkownika jest również aktualizowana po wyjątku dotyczącym naruszenia indeksu unikatowego. Czy jest na to jakiś sposób?
Алена Шлыкова
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.