我已经在SQL Server中使用以下查询不幸删除了数据库中的数据如何回滚SQL Server数据库中的数据?
exec usp_delete_cascade "someTable", "id='somexyz'"
谁能告诉我如何找回我的数据?
这可能吗?
我已经在SQL Server中使用以下查询不幸删除了数据库中的数据如何回滚SQL Server数据库中的数据?
exec usp_delete_cascade "someTable", "id='somexyz'"
谁能告诉我如何找回我的数据?
这可能吗?
有两种事务 - 隐式和显式。
隐式事务用于每次您执行DML语句(在您的案例中删除)。该事务不是用户处理的。并不是你的qry没有在交易中运行。
显性事务可通过用户(与开始事务)来定义。如果不指定事务,则只有隐式事务,当语句成功时它们自动合并。
有几种方法如何恢复数据,但从来没有100%的成功,并没有工作。您必须使用一些外部程序作为SysTools SQL恢复,ApexSQL恢复或Veeam。恢复级别取决于您的存储使用情况和服务器配置。
只有一个100%的方式是prevension(和备份,变更跟踪等)。
我会推荐SysTools SQL恢复,因为它对我来说非常有帮助,当我从勒索软件攻击中取回数据库时。 –
你可以尝试用ApexSQL的这个工具来恢复,但你会觉得在备份和措施,以避免这样的问题。
http://www.apexsql.com/sql_tools_recover.aspx
显然是一个第三方工具,你将支付使用它。
这取决于您的服务器配置。但是,默认情况下,SQL Server在执行查询时不启动事务。所以,如果你没有开始交易,或者开始交易,但是提交,回滚是不可能的。
其它方式来恢复数据:如果您的数据库恢复模型设置为完全和你有差异或完整备份,你就是幸运的。如果否,则数据丢失。
我认为这是不可能的,至少你有你的数据库的备份,并且可以从那里恢复数据 – Mitrucho
您可以回滚事务,您可以恢复备份,一方或另一方。鉴于这个问题,你很可能只有后者的选择。如果您没有备份,但您确实有一个事务日志,那么您可以在执行该语句之前重新生成数据库。然后,您可以恢复到较早的点(或重新创建一个空数据库)并重播事务日志。我没有这方面的经验。备份是你的朋友。 –
恢复最近的备份,也许..... –