Menemukan terakhir kali tabel diperbarui


17

Kueri:

SELECT 
    name AS TableName, 
    create_date AS CreatedDate, 
    modify_date as ModifyDate 
FROM sys.tables 
order by ModifyDate;

... akan memberi tahu saya kapan terakhir kali sebuah tabel dibuat dan dimodifikasi (dari perspektif DDL). Tapi saya ingin tahu kapan data aktual terakhir dimasukkan atau dihapus dari tabel. Apakah mungkin untuk mendapatkan ini di SQL Server?

Jawaban:


22

Anda mungkin bisa mendapatkan ide dari

SELECT last_user_update
FROM   sys.dm_db_index_usage_stats us
       JOIN sys.tables t
         ON t.object_id = us.object_id
WHERE  database_id = db_id()
       AND t.object_id = object_id('dbo.YourTable') 

tetapi data yang ada tidak bertahan di restart layanan dan mungkin tidak akurat untuk kebutuhan Anda (misalnya menjalankan DELETE FROM T WHERE 1=0akan memperbarui waktu meskipun tidak ada baris yang benar-benar dihapus)


Apakah ada cara saya bisa menjalankan ini untuk semua tabel dalam database sekaligus, bukan tabel tunggal? terima kasih
SQLBoy

3
@SQLBoySELECT last_user_update, t.name FROM sys.dm_db_index_usage_stats us JOIN sys.tables t ON t.object_id = us.object_id WHERE database_id = db_id()
Martin Smith

Tanggal last_user_update juga diperbarui setelah pengecualian pelanggaran indeks unik. Apakah ada cara untuk mengatasi ini?
Алена Шлыкова
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.