
呵呵,如果你有删除之前做过备份,那么可以从备份里面恢复。
如果你的数据库模式是完全或者大容量日志,也可能可以恢复,据说可以从日志中恢复数据,但是,我不知道方法。
一般 *** 作之前,可以先按delete的条件select一次数据,符合要求后再改成delete。或者干脆先将要delete的数据select into一张临时表,检查无误后再drop掉临时表。
1、首先新建一张测试表TEST,里面输入记录。由于删除/更新/插入恢复步骤相同,这里仅演示删除数据的情况。
2、删除其中1条记录,查看表中记录情况,由下图可见,记录2被删除了。
3、恢复之前先确定要恢复到的时间点,下图可以看出2018-03-07 15:33:00数据是正确的。
SELECT
FROM TEST AS OF TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
4、下面进行表数据恢复。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
可以看到报错了,原因是没有开启行移动。
5、开启该表的行移动。
ALTER TABLE TEST ENABLE ROW MOVEMENT;
6、再次执行数据恢复。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2018-03-07 15:33:00', 'YYYY-MM-DD HH24:MI:SS');
然后查看数据情况,可以看到已经恢复了。
db2中,执行完delete后,只是在数据前加一个“delete”标识,标识该块存储可以被重用,再执行insert语句时,就会扫描整个表然后把数据插入到这样的标识位置。
所以你执行完delete并不会释放空间
sqlserver
执行了delete
语句后怎么恢复这部delete *** 作
1
如果没有提交,可以撤回
2
如果已经提交,则看是否有备份
3
如果有备份,那么恢复数据库到另外的地方,然后此表恢复
4
如果没有备份,那么没有办法的。
使用log
explorer等软件也不可以
另外如何清除增删改查的日志
不是你怎么写的。
首先,你要理解事务的概念。
commit、rollback是在事务处理中,提交、回滚的命令。
其次,你的编辑器,要设置成:不是自动提交数据。
比如:
delect from tabname;
此时,如果想提及,则执行:
commit;
如果想回滚:
rollback;
如果你设置的是 自动提交。
那么你在执行delete后,就自动commit了,也就不能rollback; 了
以上就是关于SQL Server 2008数据库中的记录用delete语句删除后能否恢复全部的内容,包括:SQL Server 2008数据库中的记录用delete语句删除后能否恢复、在oracle中如何找回被删除的数据、db2 delete表数据如何恢复,表没有删除等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)