Восстановление удаленной записи в SQL Server

Я случайно удалил строку в таблице и хочу ее восстановить. Я нашел решение здесь: Как восстановить удаленные записи на сервере MS SQL

Я попытался восстановить базу данных из резервной копии, сделанной после удаления. Но я не могу восстановить базу данных с опцией STOPAT:

RESTORE LOG database FROM DISK = N'X:\database.BAK' WITH STOPAT = N'2011-02-12T00:00:00', RECOVERY 

У меня есть следующая ошибка:

 Msg 3117, Level 16, State 4, Line 1 The log or differential backup cannot be restored because no files are ready to rollforward. Msg 3013, Level 16, State 1, Line 1 RESTORE LOG is terminating abnormally. 

Я попытался восстановить базу данных из резервной копии, сделанной после удаления.

Вы не можете восстановить удаленные записи из резервной копии, сделанной после удаления. Тебе нужно:

  • последняя полная резервная копия, сделанная до удаления
  • все резервные копии журналов, сделанные между последней полной резервной копией, до первой резервной копии журнала, сделанной после удаления
  • база данных должна находиться в режиме полного восстановления

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

Только если все вышеприведенные условия выполнены, вы можете идти дальше и следовать процедуре. Если вам не хватает любого из вышеперечисленного, то эта запись будет потеряна. Как правило, не следуйте блогам или ответам на форуме, включая этот, следуйте вместо этого документации продукта: Как: Восстановить точку во времени (Transact-SQL)

Если ваша база данных находится в режиме полного восстановления, вы можете попробовать прочитать журнал транзакций и восстановить данные с помощью коммерческого инструмента, такого как команды ApexSQL Log или SQL Server, такие как DBCC LOG или fn_log.

Также вы можете попробовать посмотреть эти сообщения для получения дополнительной информации:

Как отменить операцию удаления в SQL Server 2005?

Как просматривать журналы транзакций в SQL Server 2008

Взято из этой ссылки –

Дифференциальная резервная копия, хотя и содержит только измененные страницы данных с момента последней полной резервной копии базы данных, может быть восстановлена ​​только в сочетании с полной резервной копией, аналогичной использованию резервных копий журналов. У вас нет возможности восстанавливать только отдельные таблицы или объекты, но вы можете восстановить их в базе данных, файловой группе, файле и уровне страницы. Вы также можете восстановить до определенного момента времени из любой из резервных копий (при условии, что вы восстановили требуемые предыдущие полные, diff, журналы).

Возможно, лучшим решением для вас в этом случае будет восстановление базы данных с использованием другого имени базы данных, а затем перемещение только данных, которые вы хотите, в вашу существующую базу данных? Не уверен, что это именно то, чего вы пытаетесь достичь.

Да, можно восстановить удаленные записи из базы данных SQL Server с помощью различных методов, которые, с другой стороны, требуют разных предварительных условий. Некоторые из них включают собственные функции SQL Server, другие сторонние инструменты.

Во всяком случае, в некоторых случаях удаленные данные не теряются, даже если ваша база данных не использует модель полного восстановления. Для получения дополнительной информации проверьте Восстановить удаленные данные SQL из резервной копии или из онлайн-файлов онлайн- файлов в Интернете.

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

Давайте будем гением компьютера.