Bir tablonun en son güncellendiğini bulma


17

Sorgu:

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

... bir tablonun en son ne zaman oluşturulduğunu ve değiştirildiğini (DDL perspektifinden) söyleyecektir. Ama gerçek veri son kez eklenen veya tablodan kaldırılmış bilmek istiyorum. Bunu SQL Server'da almak mümkün mü?

Yanıtlar:


22

Şundan bir fikir edinebilirsiniz

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

ancak buradaki veriler hizmet yeniden başlatılırken kalıcı olmaz ve gereksinimleriniz için doğru olmayabilir (örneğin DELETE FROM T WHERE 1=0, hiçbir satır gerçekten silinmemiş olsa bile çalıştırma saati günceller)


Bunu tek bir tablo yerine bir anda bir veritabanındaki tüm tablolar için çalıştırabilmem mümkün mü? teşekkürler
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

Last_user_update tarihi, afeter benzersiz dizin ihlali istisnası olarak da güncellenir. Bunun etrafında bir yol var mı?
Алена Шлыкова
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.