Tìm lần cuối cùng một bảng được cập nhật


16

Truy vấn:

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

... sẽ cho tôi biết lần cuối cùng một bảng được tạo và sửa đổi (từ phối cảnh DDL). Nhưng tôi muốn biết lần cuối cùng dữ liệu thực tế được chèn hoặc xóa khỏi bảng. Có thể có được điều này trong SQL Server?

Câu trả lời:


22

Bạn có thể có được một ý tưởng từ

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

nhưng dữ liệu không được duy trì trong suốt quá trình khởi động lại dịch vụ và có thể không chính xác cho các yêu cầu của bạn (ví dụ: chạy DELETE FROM T WHERE 1=0sẽ cập nhật thời gian mặc dù không có hàng nào thực sự bị xóa)


Có cách nào tôi có thể chạy cái này cho tất cả các bảng trong cơ sở dữ liệu tại một thời điểm, thay vì một bảng không? cảm ơn
SQLBoy

3
@QueryBoySELECT 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

Ngày last_user_update cũng được cập nhật ngoại lệ vi phạm chỉ mục duy nhất afeter. Có cách nào để khắc phục điều này?
Tiếng Pháp là
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.