一尘不染

查找上次更新表的时间

sql-server

查询:

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

…会告诉我上次创建和修改表的时间(从 DDL 的角度来看)。但我想知道上次从表中插入或删除实际数据的时间。是否有可能在 SQL Server 中得到这个?


阅读 133

收藏
2022-11-14

共1个答案

一尘不染

你也许可以从中得到一个想法

SELECT last_user_update
FROM   sys.dm_db_index_usage_stats
WHERE  database_id = db_id()
       AND object_id = object_id('dbo.YourTable') 

但是那里的数据不会在服务重新启动时保持不变,并且可能不符合您的要求(例如DELETE FROM T WHERE 1=0,即使没有实际删除任何行,运行也会更新时间)


有什么方法可以一次为数据库中的所有表运行它,而不是单个表?

SELECT 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()
2022-11-14