获取数据库中所有表的上次用户更新时间

时间:2014-10-09 23:30:01

标签: sql-server sql-server-2008

在SQL SERVER 2008 R2中,我有7个数据库,每个数据库有大约1000个表。

我需要知道用户上次更新了哪些表格。经过一些研究,我得到了这段代码:

SELECT  OBJECT_NAME(OBJECT_ID) AS TableName,
                                  last_user_update,
                                  user_updates,
                                  index_id
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID('SP3D_DB_RESEARCH_MDB') AND 
                    OBJECT_ID = OBJECT_ID('CORECone3d')
GO

这只返回一个结果,因为它要求在特定的表/数据库上进行最后的用户更新。

有没有办法把它放在某种循环中,所以它迭代遍历数据库中的所有表,我可以得到最后修改过哪些表?

它不一定是查询结果,它可以是一个简单的文本输出。

我不知道这是否重要,但我使用的是MS SQL SERVER MANAGEMENT STUDIO。

  • 更新 -

基于Pradeep答案,我得到以下结果,TableName为NULL

query results based on answer

1 个答案:

答案 0 :(得分:2)

试试这个:

SELECT  OBJECT_NAME(OBJECT_ID) AS TableName,
                              last_user_update,
                              user_updates,
                              index_id
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID('SP3D_DB_RESEARCH_MDB')