sintomo:

Quando si collega un database .MDF in SQL Server, viene visualizzato il seguente messaggio di errore:

SQL Server ha rilevato un errore di I / O basato sulla coerenza logica: checksum non corretto (previsto: 0x2abc3894; effettivo: 0x2ebe208e). Si è verificato durante una lettura della pagina (1: 1) nell'ID database 12 con offset 0x00000000002000 nel file "xxx.mdf". Messaggi aggiuntivi in SQL Server il registro degli errori o il registro degli eventi di sistema possono fornire ulteriori dettagli. Questa è una condizione di errore grave che minaccia l'integrità del database e deve essere corretta immediatamente. Completare un controllo completo della coerenza del database (DBCC CHECKDB). Questo errore può essere causato da molti fattori; Per ulteriori informazioni, vedere SQL Server Documentazione in linea (Microsoft SQL Server, Errore: 824)

dove "xxx.mdf" è il nome del file MDF a cui si accede.

A volte il database .MDF può essere collegato correttamente. Tuttavia, quando si tenta di eseguire un'istruzione SQL, come

SELEZIONA * DA [TestDB]. [Dbo]. [Test_table_1]

riceverai anche il messaggio di errore precedente.

Screenshot del messaggio di errore:

Spiegazione precisa:

I dati nel file MDF vengono memorizzati come pagine, ogni pagina è 8 KB. Ogni pagina ha un campo checksum opzionale.

If SQL Server rileva che i valori di checksum in alcune pagine di dati non sono validi, quindi segnalerà questo errore.

Puoi usare il nostro prodotto DataNumen SQL Recovery per recuperare i dati dal file MDF danneggiato e risolvere questo errore.

File di esempio:

Esempio di file MDF corrotti che causeranno l'errore:

SQL Server versione File MDF danneggiato File MDF corretto da DataNumen SQL Recovery
SQL Server 2005 Errore4_1.mdf Error4_1_fixed.mdf
SQL Server 2008 R2 Errore4_2.mdf Error4_2_fixed.mdf
SQL Server 2012 Errore4_3.mdf Error4_3_fixed.mdf
SQL Server 2014 Errore4_4.mdf Error4_4_fixed.mdf