Simptom:

Când încercați să atașați o bază de date .MDF în SQL Server, vedeți următorul mesaj de eroare:

Nu s-au putut prelua datele pentru această solicitare. (Microsoft.SqlServer.Management.Sdk.Sfc)

A apărut o excepție în timpul executării unei instrucțiuni sau a unui lot Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)

xxx.mdf nu este un fișier de bază de date primară. (Microsoft SQL Server, Eroare: 5171)

unde „xxx.mdf este numele fișierului MDF care urmează să fie atașat.

Captură de ecran a mesajului de eroare:

Captură de ecran cu eroarea „Nu este un fișier de bază de date primară”

Explicație precisă:

Datele din fișierul MDF sunt stocate ca pagini, fiecare pagină are 8KB. Prima pagină se numește pagina antet fișierului, care conține most informații importante despre întregul fișier, cum ar fi semnătura fișierului, dimensiunea fișierului, compatibilitatea etc. Paginile rămase conțin, de asemenea, informații importante, inclusiv informațiile de alocare a paginii, precum și datele reale.

Dacă pagina antet al fișierului MDF sau alte pagini importante de gestionare sunt deteriorate sau corupte și nu pot fi recunoscute de Microsoft SQL Server, Apoi SQL Server va crede că întregul fișier nu este un fișier de bază de date primară valid și va raporta această eroare.

Puteți folosi produsul nostru DataNumen SQL Recovery pentru a recupera datele din fișierul MDF corupt și pentru a rezolva această eroare.

Exemple de fișiere:

Exemple de fișiere MDF corupte care vor cauza eroarea:

SQL Server versiune Fișier MDF corupt Fișier MDF reparat de DataNumen SQL Recovery
SQL Server 2005 Error1_1.mdf Error1_1_fixed.mdf
SQL Server 2008 R2 Error1_2.mdf Error1_2_fixed.mdf
SQL Server 2012 Error1_3.mdf Error1_3_fixed.mdf
SQL Server 2014 Error1_4.mdf Error1_4_fixed.mdf