查找表的上次更新时间

dub*_*ech 18 sql-server-2008 sql-server

查询:

SELECT 
    name AS TableName, 
    create_date AS CreatedDate, 
    modify_date as ModifyDate 
FROM sys.tables 
order by ModifyDate;
Run Code Online (Sandbox Code Playgroud)

...将告诉我上次创建和修改表的时间(从 DDL 的角度)。但我想知道上次从表中插入或删除实际数据的时间。是否可以在 SQL Server 中获得它?

Mar*_*ith 25

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

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') 
Run Code Online (Sandbox Code Playgroud)

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

  • @SQLBoy `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()` (4认同)