I just received an email from one of my
regular readers who is curious to know if there is any way to find out
when a table is recently updated. I was ready with my answer! I promptly
suggested him that if a table contains UpdatedDate or ModifiedDate date
column with default together with value GETDATE(), he should make use
of it. On close observation the table is not required to keep history
when any row is inserted. However, the sole prerequisite is to be aware
of when any table has been updated. That’s it!
If a user wants to finds out when was the
last table updated he can query dynamic management view (dmv) –
sys.dm_db_index_usage_stats and easily figure out when was the table
updated last. Let us comprehend this example by creating a table and
updating it. We can use dmv to determine when it was updated last.
USE AdventureWorks
GO
CREATE TABLE Test
(ID INT,
COL VARCHAR(100))
GO
INSERT INTO Test
SELECT 1,'First'
UNION ALL
SELECT 2,'Second'
GO
Now we have created a table and populated
it with data. Next, we will run the following query to find out when it
was last updated.
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')
Running query provides accurate details
of when was the table last updated. If WHERE condition is entirely
removed it will provide details of the entire database.
No comments:
Post a Comment