Gejala:

Semasa cuba melampirkan pangkalan data .MDF di SQL Server, anda melihat mesej ralat berikut:

Gagal mengambil data untuk permintaan ini. (Microsoft.SqlServer.Management.Sdk.Sfc)

Pengecualian berlaku semasa melaksanakan pernyataan Transact-SQL atau kumpulan. (Microsoft.SqlServer.ConnectionInfo)

xxx.mdf bukan fail pangkalan data utama. (Microsoft SQL Server, Ralat: 5171)

di mana 'xxx.mdf adalah nama fail MDF yang akan dilampirkan.

Tangkapan skrin mesej ralat:

Penjelasan tepat:

Data dalam fail MDF disimpan sebagai halaman, setiap halaman 8KB. Halaman pertama disebut halaman header fail, yang berisi most maklumat penting mengenai keseluruhan fail, seperti tandatangan fail, saiz fail, keserasian, dan lain-lain. Halaman yang tersisa juga mengandungi maklumat penting, termasuk maklumat peruntukan halaman dan juga data sebenar.

Sekiranya halaman tajuk fail MDF, atau halaman pengurusan penting lain rosak atau rosak, dan tidak dapat dikenali oleh Microsoft SQL Server, Maka SQL Server akan menganggap keseluruhan fail bukan fail pangkalan data utama yang sah dan melaporkan kesilapan ini.

Anda boleh menggunakan produk kami DataNumen SQL Recovery untuk memulihkan data dari fail MDF yang rosak dan menyelesaikan ralat ini.

Fail Contoh:

Contoh fail MDF yang rosak yang akan menyebabkan ralat:

SQL Server versi Fail MDF rosak Fail MDF dibetulkan oleh DataNumen SQL Recovery
SQL Server 2005 Ralat1_1.mdf Ralat1_1_fixed.mdf
SQL Server 2008 R2 Ralat1_2.mdf Ralat1_2_fixed.mdf
SQL Server 2012 Ralat1_3.mdf Ralat1_3_fixed.mdf
SQL Server 2014 Ralat1_4.mdf Ralat1_4_fixed.mdf