Find the last time table was updated

后端 未结 6 918
渐次进展
渐次进展 2020-12-23 12:10

I want to retrieve the last time table was updated(insert,delete,update).

I tried this query.

SELECT last_user_update
FROM sys.dm_db_index_usage_stat         


        
相关标签:
6条回答
  • 2020-12-23 12:22

    To persist audit data regarding data modifications, you will need to implement a DML Trigger on each table that you are interested in. You will need to create an Audit table, and add code to your triggers to write to this table.

    For more details on how to implement DML triggers, refer to this MDSN article http://msdn.microsoft.com/en-us/library/ms191524%28v=sql.105%29.aspx

    0 讨论(0)
  • 2020-12-23 12:32

    Find last time of update on a table

    SELECT
    tbl.name
    ,ius.last_user_update
    ,ius.user_updates
    ,ius.last_user_seek
    ,ius.last_user_scan
    ,ius.last_user_lookup
    ,ius.user_seeks
    ,ius.user_scans
    ,ius.user_lookups
    FROM
    sys.dm_db_index_usage_stats ius INNER JOIN
    sys.tables tbl ON (tbl.OBJECT_ID = ius.OBJECT_ID)
    WHERE ius.database_id = DB_ID()
    

    http://www.sqlserver-dba.com/2012/10/sql-server-find-last-time-of-update-on-a-table.html

    0 讨论(0)
  • 2020-12-23 12:39

    If you're talking about last time the table was updated in terms of its structured has changed (new column added, column changed etc.) - use this query:

    SELECT name, [modify_date] FROM sys.tables
    

    If you're talking about DML operations (insert, update, delete), then you either need to persist what that DMV gives you on a regular basis, or you need to create triggers on all tables to record that "last modified" date - or check out features like Change Data Capture in SQL Server 2008 and newer.

    0 讨论(0)
  • 2020-12-23 12:43

    Why not just run this: No need for special permissions

    SELECT
        name, 
        object_id, 
        create_date, 
        modify_date
    FROM
        sys.tables 
    WHERE 
        name like '%yourTablePattern%'
    ORDER BY
        modify_date
    
    0 讨论(0)
  • 2020-12-23 12:45
    SELECT so.name,so.modify_date
    
    FROM sys.objects as so
    
    INNER JOIN INFORMATION_SCHEMA.TABLES as ist
    
    ON ist.TABLE_NAME=so.name where ist.TABLE_TYPE='BASE TABLE' AND 
    
    TABLE_CATALOG='DbName' order by so.modify_date desc;
    

    this is help to get table modify with table name

    0 讨论(0)
  • 2020-12-23 12:46

    If you want to see data updates you could use this technique with required permissions:

    SELECT OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update,*
    FROM sys.dm_db_index_usage_stats
    WHERE database_id = DB_ID( 'DATABASE')
    AND OBJECT_ID=OBJECT_ID('TABLE')
    
    0 讨论(0)
提交回复
热议问题