SQL Server 2008数据库中的记录用delete语句删除后能否恢复

SQL Server 2008数据库中的记录用delete语句删除后能否恢复,第1张

呵呵,如果你有删除之前做过备份,那么可以从备份里面恢复。

如果你的数据库模式是完全或者大容量日志,也可能可以恢复,据说可以从日志中恢复数据,但是,我不知道方法。

一般 *** 作之前,可以先按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表数据如何恢复,表没有删除等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10074737.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存