在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
答案 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')