Знаходження останнього разу оновлення таблиці


17

Запит:

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

... скаже мені, коли останній раз створювали та змінювали таблицю (з точки зору DDL). Але я хочу знати, коли востаннє фактичні дані були або вставлені, або видалені з таблиці. Чи можливо це отримати в SQL Server?

Відповіді:


22

Можливо, вам вдасться отримати ідею

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

але дані там не зберігаються через перезавантаження сервісу і можуть не бути точними для ваших вимог (наприклад, запуск DELETE FROM T WHERE 1=0оновить час, навіть якщо жодні рядки фактично не були видалені)


Чи є спосіб запустити це для всіх таблиць у базі даних одночасно замість однієї таблиці? дякую
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()
Мартін Сміт

Дата останнього_поновлення оновлення також оновлюється за винятком унікального порушення індексу. Чи є спосіб обходити це?
Алена Шлыкова
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.