Sql server 获取数据库中所有表的上次用户更新时间
在SQLServer2008R2中,我有7个数据库,每个数据库大约有1000个表 我需要知道用户上次更新了哪些表。通过一些研究,我得到了以下代码:Sql server 获取数据库中所有表的上次用户更新时间,sql-server,sql-server-2008,Sql Server,Sql Server 2008,在SQLServer2008R2中,我有7个数据库,每个数据库大约有1000个表 我需要知道用户上次更新了哪些表。通过一些研究,我得到了以下代码: SELECT OBJECT_NAME(OBJECT_ID) AS TableName, last_user_update, user_updates,
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
- 更新-
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')
你就不能删除
和OBJECT\u ID=OBJECT\u ID('CORECone3d')
?如果我这样做,那么它会更像我所需要的那样显示结果,但是TableName列上的所有值都是空的,那么阅读本文中的“备注”部分,它应该可以解决空的问题:正如你所知,您可以编辑并取消删除旧答案,而不是发布新答案。这样,它会显示所有表上的所有上次用户更新,但我不知道每个表的哪个条目,因为TableNAme上的所有值都是NULL。通过这种方式,无法将TableNAme设为NULL。上次用户更新可以为空@Pradeep我确实用结果的图像更新了这个问题。@RBasniak-尝试在选择列表中包含没有对象名称的对象id,并检查它是否为空