|
|
1
5
如果在代码中使用事务,则可以回滚截断。如果没有使用事务,并且提交了截断操作,则无法从日志文件中检索该操作。truncate是DDL操作,它没有记录在日志文件中。 如果当前会话未关闭,则当事务包围时,删除和截断都可以回滚。如果truncate是在被事务包围的查询编辑器中写入的,并且会话关闭,则不能回滚它,但可以回滚删除操作。
|
|
|
2
5
默认情况下,这两个都不能恢复,但在可能的情况下有特殊情况。 截断 :执行truncate时,SQL Server不会删除数据,但只释放页面。这意味着,如果您仍然可以阅读这些页面(使用查询或第三方工具),就有可能恢复数据。但是,在覆盖这些页面之前,您需要快速采取行动。 删除 :如果数据库处于完全恢复模式,则所有事务都记录在事务日志中。如果您可以读取事务日志,那么从理论上讲,您可以找出所有受影响行的先前值,然后恢复数据。 回收方法:
|
|
|
3
4
SQL Server保留被截断的记录和这些记录的条目(页面文件),您可以从下面的查询轻松浏览。 一旦获得了页ID和文件ID,就可以将其放入DBCC页以检索完整的记录。
下面给出了文章的链接,解释了如何从SQL Server恢复截断的记录。 http://raresql.com/2012/04/08/how-to-recover-truncated-data-from-sql-server-without-backup/ |
|
|
4
0
如果数据库处于完全恢复模式,则可以通过截断、删除或删除来恢复数据。 这里是完整的逐步文章 https://codingfry.blogspot.com/2018/09/how-to-recover-data-from-truncated.html |