若執行 UPDATE 或 DELETE 未加 WHERE 子句、或條件不精確,導致大量資料異動,唯有透過交易記錄備份進行時間點還原。前提:資料庫必須為「完整」或「大量記錄」復原模式,且已有完整備份做基礎;若設定 trunc. log on checkpoint 導致記錄被截斷,則無法還原至誤操作前時間點。
BACKUP LOG dbName TO DISK = 'tail_log.bak'RESTORE DATABASE dbName FROM DISK = 'full.bak' WITH NORECOVERYWITH NORECOVERY。RESTORE LOG dbName FROM DISK = 'tail_log.bak' WITH STOPAT = 'YYYY-MM-DD HH:MM:SS'STOPAT 為誤操作發生前的時間點。以上操作均可在 SQL Server 企業管理員圖形介面完成,難度不高。
若誤操作為不記錄記錄的作業(如 TRUNCATE TABLE、SELECT INTO),上述方法無效,僅能回復至最近一次備份。