Symptom:

Når du prøver at vedhæfte en .MDF-database i SQL Server, ser du følgende fejlmeddelelse:

Kunne ikke hente data til denne anmodning. (Microsoft.SqlServer.Management.Sdk.Sfc)

En undtagelse opstod under udførelse af en Transact-SQL-sætning eller batch. (Microsoft.SqlServer.ConnectionInfo)

xxx.mdf er ikke en primær databasefil. (Microsoft SQL Server, Fejl: 5171)

hvor 'xxx.mdf er navnet på den MDF-fil, der skal vedhæftes.

Skærmbillede af fejlmeddelelse:

Skærmbillede af fejlen "Ikke en primær databasefil"

Præcis forklaring:

Dataene i MDF-filen er gemt som sider, hver side er 8 KB. Den første side kaldes filens sidehoved, der indeholder most vigtige oplysninger om hele filen, såsom filsignaturen, filstørrelse, kompatibilitet osv. De resterende sider indeholder også vigtige oplysninger, herunder information om sidetildeling samt de faktiske data.

Hvis MDF-filens sidehovedside eller andre vigtige styringssider er beskadiget eller ødelagt og ikke kan genkendes af Microsoft SQL Server, derefter SQL Server vil tro, at hele filen ikke er en gyldig primær databasefil og rapportere denne fejl.

Du kan bruge vores produkt DataNumen SQL Recovery for at gendanne dataene fra den korrupte MDF-fil og løse denne fejl.

Prøvefiler:

Eksempel på korrupte MDF-filer, der vil forårsage fejlen:

SQL Server udgave Korrupt MDF-fil MDF-fil rettet af DataNumen SQL Recovery
SQL Server 2005 Fejl1_1.mdf Fejl1_1_fixed.mdf
SQL Server 2008 R2 Fejl1_2.mdf Fejl1_2_fixed.mdf
SQL Server 2012 Fejl1_3.mdf Fejl1_3_fixed.mdf
SQL Server 2014 Fejl1_4.mdf Fejl1_4_fixed.mdf