การค้นหาเวลาล่าสุดที่ตารางถูกอัพเดต


17

แบบสอบถาม:

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

... จะบอกฉันว่าครั้งสุดท้ายที่มีการสร้างและแก้ไขตาราง (จากมุมมอง DDL) แต่ฉันต้องการทราบว่าข้อมูลจริงครั้งล่าสุดถูกแทรกหรือลบออกจากตาราง เป็นไปได้หรือไม่ที่จะได้รับสิ่งนี้ใน SQL Server

คำตอบ:


22

คุณอาจได้รับแนวคิดจาก

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

แต่ข้อมูลที่ไม่มีอยู่ระหว่างการรีสตาร์ทเซอร์วิสและอาจไม่ถูกต้องสำหรับความต้องการของคุณ (เช่นการทำงานDELETE FROM T WHERE 1=0จะอัปเดตเวลาแม้ว่าจะไม่มีการลบแถว)


มีวิธีใดบ้างที่ฉันสามารถเรียกใช้งานนี้สำหรับตารางทั้งหมดในฐานข้อมูลในแต่ละครั้งแทนที่จะเป็นตารางเดียว ขอบคุณ
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 ได้รับการอัปเดตด้วยข้อยกเว้นการละเมิดดัชนีที่ไม่ซ้ำกัน มีวิธีแก้ไขไหม?
АленаШлыкова
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.