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:
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 |