2009-04-22 9 views
0

J'essaie de savoir quand la dernière insertion/mise à jour a été faite à une table spécifique dans notre SQL 2005 db. Les données n'ont pas d'horodatage, donc je ne peux pas dire de cette façon. Y a-t-il un dmv qui pourrait m'aider?Comment dire la dernière mise à jour/insertion d'une activité sur une table sql 2005

Merci, hp

en double: How to find recent sql update operations acting upon a certain table (SQL Server 2005)

+0

Je ne trouve pas que cette question soit un doublon, car celui-ci veut la date de la dernière modification. – seFausto

Répondre

0

J'ai trouvé un lien qui pourrait vous aider:

Last Update Time de blog.sqlauthority.com

Une partie de cette post contient ce code: où 'AdventureWorks' est le nom du catalogue et 'test' est le nom de la table

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

La seule chose qui se passe avec ceci est que l'utilisateur doit avoir l'autorisation "VIEW SERVER STATE" ou il échouera. – avenmore

0

Ce code:

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') 

fonctionne très bien, mais si vous regardez la table source: sys.dm_db_index_usage_stats vous vous rendrez compte que la table doivent être indexés afin qu'ils apparaissent ici . Vous pensez peut-être que toutes les tables sont indexées, nous prenons des instantanés pour l'entreposage de données et il n'est pas nécessaire d'indexer ces tables, mais nous aimons montrer aux gens quand ils ont été mis à jour pour la dernière fois.

Alors qu'il apparaît que si vous créez une table en SQL sans index et que vous la mettez à jour/ajoutez des données, sys.dm_db_index_usage_stats est mis à jour. Nous mettons à jour nos tables avec SSIS et il n'y a aucune entrée pour nos tables dans sys.dm_db_index_usage_stats.

Questions connexes