我试图找出我们的sql 2005 db中的特定表的最后一次插入/更新的时间。数据没有时间戳,所以我不能这么说。那里有没有可以帮助我的dmv?
谢谢, 马力
重复:How to find recent sql update operations acting upon a certain table (SQL Server 2005)
答案 0 :(得分:0)
我找到了一个可以帮助你的链接:
来自blog.sqlauthority.com的该帖子的一部分包含此代码:其中'AdventureWorks'是目录名称,'test'是表名
SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'AdventureWorks')
AND OBJECT_ID=OBJECT_ID('test')
答案 1 :(得分:0)
此代码:
SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'AdventureWorks')
AND OBJECT_ID=OBJECT_ID('test')
工作正常,但如果查看源表:sys.dm_db_index_usage_stats,您将意识到必须对表进行索引才能使它们显示在此处。您可能认为所有表都已编制索引,我们为数据仓库创建快照,并且不需要为这些表编制索引,但是我们确实希望在上次更新时向人们显示。
虽然看起来如果在没有索引的SQL中创建表并更新它/添加数据,sys.dm_db_index_usage_stats会更新。我们使用SSIS更新表,并且sys.dm_db_index_usage_stats中没有表的条目。