sintomo:

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

Impossibile recuperare i dati per questa richiesta. (Microsoft.SqlServer.Management.Sdk.Sfc)

Si è verificata un'eccezione durante l'esecuzione di un'istruzione o un batch Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)

xxx.mdf non è un file di database primario. (Microsoft SQL Server, Errore: 5171)

dove 'xxx.mdf è il nome del file MDF da allegare.

Screenshot del messaggio di errore:

Spiegazione precisa:

I dati nel file MDF vengono memorizzati come pagine, ogni pagina è 8 KB. La prima pagina è chiamata pagina di intestazione del file, che contiene il file most informazioni importanti sull'intero file, come la firma del file, le dimensioni del file, la compatibilità, ecc. Le pagine rimanenti contengono anche le informazioni importanti, comprese le informazioni sull'allocazione della pagina e i dati effettivi.

Se la pagina di intestazione del file MDF o altre importanti pagine di gestione sono danneggiate o danneggiate e non possono essere riconosciute da Microsoft SQL Server, poi SQL Server penserà che l'intero file non sia un file di database primario valido e 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 Errore1_1.mdf Error1_1_fixed.mdf
SQL Server 2008 R2 Errore1_2.mdf Error1_2_fixed.mdf
SQL Server 2012 Errore1_3.mdf Error1_3_fixed.mdf
SQL Server 2014 Errore1_4.mdf Error1_4_fixed.mdf