2009-04-22 16 views
0

SQL 2005データベースの特定のテーブルに対して最後の挿入/更新がいつ行われたかを調べようとしています。データにはタイムスタンプがありませんので、私はそのようには言えません。この中に私を助けてくれるdmvはありますか?テーブルの最後の更新/挿入アクティビティを通知する方法SQL 2005

おかげで、 HP

重複:blog.sqlauthority.com

その一部から

Last Update Time:私はあなたを助けることができるリンクを発見した

+0

私は最後の修正の日付が必要なので、この質問は重複するものではありません。 – seFausto

答えて

0

How to find recent sql update operations acting upon a certain table (SQL Server 2005) postには次のコードが含まれています: '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') 
+0

これは、ユーザーが "VIEW SERVER STATE"権限を持っていなければならないか、失敗するということです。 – avenmore

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にテーブルのエントリがありません。