我遗憾地通过在SQL Server中使用以下查询从数据库中删除了数据
exec usp_delete_cascade "someTable", "id='somexyz'"
有人可以告诉我如何取回我的数据吗?
这可能吗?
答案 0 :(得分:1)
有两种交易 - 隐式和显式。
每次执行DML语句时都会使用隐式事务(在您的情况下为删除)。此交易不是用户处理的。你的qry没有在交易中运行,这是不正确的。
显式事务可以由用户定义(使用begin transaction)。如果不指定事务,则只有隐式事务,这些事务在语句成功时自动更新。
有几种方法可以恢复数据,但绝不会有100%的成功和没有工作。您必须使用一些外部程序作为SysTools SQL Recovery,ApexSQL Recover或Veeam。恢复级别取决于您的存储使用和服务器配置。
只有一种100%的方式是预防(以及备份,更改跟踪等)。
答案 1 :(得分:0)
您可以尝试使用此ApexSQL工具进行恢复,但您可以在备份和措施中考虑避免此类问题。
http://www.apexsql.com/sql_tools_recover.aspx
显然是第三方工具,您需要付费才能使用它。
答案 2 :(得分:0)
这取决于您的服务器配置。但是,默认情况下,SQL Server在执行查询时不会启动事务。因此,如果您没有启动事务,或者事务已启动,但已提交,则无法回滚。
恢复数据的其他方法:如果您的数据库恢复模型设置为完全,并且您有差异备份或完全备份,那么您很幸运。如果不是,则数据缺少forewer。