Восстановить удаленные строки из SQL Server 2000 - PullRequest
1 голос
/ 03 октября 2011

Скрипт случайно удалил несколько строк из базы данных по следующему запросу:

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

За это время было добавлено больше строк. Есть ли способ восстановить три строки в одной таблице (или, возможно, в другой базе данных / таблице)? Я не хочу восстанавливать базу данных, как будто это означает, что я теряю все данные, добавленные / обновленные после этого запроса. Ручной ввод пропущенных строк является опцией.

Ответы [ 3 ]

1 голос
/ 21 июня 2014

Вы можете использовать ApexSQL Log , инструмент аудита и восстановления SQL Server, который считывает информацию из журналов транзакций базы данных и предоставляет сценарии отмены T-SQL как для операций DML, так и для операций DDL.

Отказ от ответственности: я работаю инженером службы поддержки продуктов в ApexSQL

0 голосов
/ 03 октября 2011

К счастью, у меня была резервная копия, поэтому я использовал описанную здесь процедуру для восстановления резервной копии на том же сервере, но в новой базе данных:

Восстановление полной резервной копии в новой базе данных вТот же сервер

После того, как резервная копия базы данных была восстановлена ​​в новой базе данных, я нашел строки и вставил их:

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

Указанный выше запрос не завершилсяя должен был включить идентификационную вставку и временно отключить пару ограничений.

0 голосов
/ 03 октября 2011

Поскольку вы работаете на SQL Server 2000, вам может повезти, так как бесплатный Redgate SQL Log Rescue Tool работает против этой версии.

...