简书链接:sqlserver误删数据是否可恢复研究
文章字数:144,阅读全文大约需要1分钟
不小心删除了数据,于是对不小心数据库误删除进行了大概的研究 总结有如下思路:

查看db的恢复模式

1
2
3
SELECT recovery_model,recovery_model_desc,*

FROM sys.databases

删除前开始事务

1
2
3
BEGIN TRANSACTION
DELETE FROM table_name WHERE condition;
ROLLBACK TRANSACTION;

一般都配置了这个 知道db路径复制

1
2
3
RESTORE DATABASE RecoveryDB FROM DISK = 'E:\x.mdf' WITH NORECOVERY;
RESTORE LOG RecoveryDB FROM DISK = 'E:\x_log.ldf' WITH STOPAT = '2024-10-22 15:30:00', NORECOVERY;

1
RESTORE DATABASE TempDB FROM DISK = '完整备份文件路径' WITH NORECOVERY;

其他方法:
快照

1
RESTORE DATABASE db_name FROM DATABASE_SNAPSHOT = 'snapshot_name';

触发器 拦截删除操作 移动到临时表

工具:
查找已删除的记录:
第三方工具(如ApexSQL Log、Redgate等)查看事务日志,找出被删除的记录并导出。