select db_name(database_id) dbname,
object_name(object_id,database_id) oname,
MAX(CASE WHEN last_user_update < last_system_update THEN last_system_update ELSE last_user_update END) as LastUpdated
from sys.dm_db_index_usage_stats
group by database_id,object_id
order by db_name(database_id),object_name(object_id,database_id)
sys.objects 表会跟踪上次修改表结构的时间,但要找出上次更新或使用表数据的时间,最接近的方法是查询 sys.dm_db_index_usage_stats。这会跟踪索引更新(包括堆或没有索引的表)。 问题是,它只跟踪自您上次重新启动服务器以来的这些数据。
此示例查询是从以下链接借用的: http ://www.sqlservercentral.com/Forums/Topic852747-146-1.aspx#bm852757