Symptom:

När du försöker bifoga en .MDF-databas i SQL Servervisas följande felmeddelande:

Det gick inte att hämta data för denna begäran. (Microsoft.SqlServer.Management.Sdk.Sfc)

Ett undantag inträffade vid körning av en Transact-SQL-sats eller batch. (Microsoft.SqlServer.ConnectionInfo)

xxx.mdf är inte en primär databasfil. (Microsoft SQL Server, Fel: 5171)

där 'xxx.mdf är namnet på MDF-filen som ska bifogas.

Skärmdump av felmeddelande:

Skärmdump av felet "Inte en primär databasfil"

Exakt förklaring:

Data i MDF-filen lagras som sidor, varje sida är 8KB. Den första sidan heter filhuvudssidan, som innehåller most viktig information om hela filen, såsom filsignatur, filstorlek, kompatibilitet, etc. De återstående sidorna innehåller också viktig information, inklusive sidallokeringsinformation samt faktiska data.

Om MDF-filhuvudssidan eller andra viktiga hanteringssidor är skadade eller skadade och inte kan identifieras av Microsoft SQL Serveroch sedan SQL Server tror att hela filen inte är en giltig primär databasfil och rapporterar detta fel.

Du kan använda vår produkt DataNumen SQL Recovery för att återställa data från den skadade MDF-filen och lösa detta fel.

Exempel på filer:

Exempel på skadade MDF-filer som orsakar felet:

SQL Server version Skadad MDF-fil MDF-fil fixad av DataNumen SQL Recovery
SQL Server 2005 Fel1_1.mdf Fel1_1_fixed.mdf
SQL Server 2008 R2 Fel1_2.mdf Fel1_2_fixed.mdf
SQL Server 2012 Fel1_3.mdf Fel1_3_fixed.mdf
SQL Server 2014 Fel1_4.mdf Fel1_4_fixed.mdf