2010-08-22 15 views
20

Ho accidentalmente eseguito un comando DELETE su una tabella con una clausola WHERE errata.Come recuperare le righe cancellate dalla tabella del server SQL?

Sto usando SQL Server 2005.

C'è un modo che potrebbe aiutarmi a recuperare i dati persi?

+0

A meno che non si disponga di un backup, che è possibile ripristinare, si pensa che potrebbe essere nei guai !! – InSane

+0

Grazie. Ne avevo bisogno. Non sono solo. (Spero che qualcuno trovi un modo per recuperare, però.) – slashmais

+2

Penso che ci siano sicuramente strumenti di terze parti in giro - http://apex-sql-log.apex-sql-llc.qarchive.org/ o Red Gate's SQL Log Rescue http://www.red-gate.com/products/SQL_Log_Rescue/ potrebbe funzionare - ma questi sono tutti prodotti a pagamento commerciali – InSane

risposta

4

Ciò che è andato è andato. L'unica protezione che conosco è il backup regolare.

+1

Forse non è del tutto preciso, ma è un'utile guida generale da tenere in considerazione * prima * di eseguire un comando 'DELETE'. – stakx

8

Hai dati completi + backup del registro transazioni, giusto? È possibile ripristinare un altro database dai backup e quindi sincronizzare nuovamente le righe eliminate. Un sacco di lavoro però ...

(Hai guardato Redgate's SQL Log RescueAggiornamento:? È SQL Server 2000)

C'è Log Explorer

5

credo che sia così impossibile, mi dispiace.

Ecco perché ogni volta che si esegue una cancellazione o un aggiornamento si dovrebbe sempre usare BEGIN TRANSACTION, quindi COMMIT in caso di successo o ROLLBACK in caso contrario.

+0

@Rev per me. [Ha funzionato] (http: // StackOverflow. com/a/8226315/1,306394 millions). – shashwat

9

E 'possibile utilizzare Apex Recovery Tool, ho recuperato con successo le mie righe della tabella che ho accidentalmente cancellati

se si scarica la versione di prova si riprenderà solo 10 ° fila

controllo qui http://www.apexsql.com/sql_tools_log.aspx

Problemi correlati