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: pagina incompleta (firma prevista: 0x ########; firma effettiva: 0x #######). Si è verificato durante una lettura della pagina (#: #) nel database ID # all'offset ### nel file "xxxx.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 Libri in linea.

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. SQL Server utilizza due meccanismi per garantire la coerenza e l'integrazione dei dati nella pagina, ovvero checksum o pagina strappata. Entrambi sono opzionali.

If SQL Server rileva che le pagine strappate per alcune delle pagine di dati non sono valide, 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 Error5_1.mdf Error5_1_fixed.mdf
SQL Server 2008 R2 Error5_2.mdf Error5_2_fixed.mdf
SQL Server 2012 Error5_3.mdf Error5_3_fixed.mdf
SQL Server 2014 Error5_4.mdf Error5_4_fixed.mdf