sintomo:

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

SQL Server rilevato un errore I/O basato sulla coerenza logica: checksum errato (previsto: 0x2abc3894; effettivo: 0x2ebe208e). Si è verificato durante una lettura della pagina (1:1) nell'ID database 12 all'offset 0x00000000002000 nel file 'xxx.mdf'. Messaggi aggiuntivi nel file SQL Server il registro degli errori o il registro degli eventi di sistema possono fornire maggiori dettagli. Questa è una grave condizione di errore 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 Libri 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, ad esempio

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 sono memorizzati come pagine, ogni pagina è 8KB. Ogni pagina ha un campo checksum facoltativo.

If SQL Server rileva che i valori di checksum in alcune delle 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 corrotto e risolvere questo errore.

File di esempio:

Esempio di file MDF corrotti che causeranno l'errore:

SQL Server versione File MDF corrotto File MDF riparato da DataNumen SQL Recovery
SQL Server 2005 Errore4_1.mdf Errore4_1_fixed.mdf
SQL Server 2008 R2 Errore4_2.mdf Errore4_2_fixed.mdf
SQL Server 2012 Errore4_3.mdf Errore4_3_fixed.mdf
SQL Server 2014 Errore4_4.mdf Errore4_4_fixed.mdf