从SQL Server 2000中恢复已删除的行

时间:2011-10-03 07:52:58

标签: sql-server sql-server-2000 data-recovery

脚本使用以下查询意外删除了数据库中的几行:

DELETE FROM that_table WHERE id IN (100, 101, 102)

同时添加了更多行。有没有办法让我将三行恢复到同一个表(或者可能是另一个数据库/表)?我不想恢复数据库,就好像这意味着我丢失了在该查询之后添加/更新的所有数据。输入缺失行的手是一种选择。

3 个答案:

答案 0 :(得分:1)

您可以使用ApexSQL Log,这是一个SQL Server审核和恢复工具,可以从数据库事务日志中读取信息,并为DML和DDL操作提供撤消T-SQL脚本。

免责声明:我在ApexSQL担任产品支持工程师

答案 1 :(得分:0)

当你在SQL Server 2000上时,你可能会很幸运,因为免费的Redgate SQL Log Rescue Tool适用于这个版本。

答案 2 :(得分:0)

幸运的是我有一个备份,所以我使用这里描述的过程来恢复同一台服务器上的备份,但是在一个新的数据库下:

Restoring a Complete Backup to a New Database on the Same Server

在新数据库中恢复数据库备份后,我找到了行并插入了它们:

INSERT INTO that_database..that_table
SELECT * FROM copy_database..that_table WHERE id IN (100, 101, 102)

上面的查询没有开箱即用,我必须启用身份插入并暂时禁用一些约束。