Triệu chứng:

Khi cố gắng đính kèm cơ sở dữ liệu .MDF trong SQL Server, bạn thấy thông báo lỗi sau:

Không thể truy xuất dữ liệu cho yêu cầu này. (Microsoft.SqlServer.Management.Sdk.Sfc)

Đã xảy ra ngoại lệ khi thực thi một lô hoặc câu lệnh Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)

xxx.mdf không phải là tệp cơ sở dữ liệu chính. (Microsoft SQL Server, Lỗi: 5171)

trong đó 'xxx.mdf là tên của tệp MDF sẽ được đính kèm.

Ảnh chụp màn hình thông báo lỗi:

Giải thích chính xác:

Dữ liệu trong tệp MDF được lưu trữ dưới dạng trang, mỗi trang là 8KB. Trang đầu tiên được gọi là trang tiêu đề tệp, trang này chứa most thông tin quan trọng về toàn bộ tệp, chẳng hạn như chữ ký tệp, kích thước tệp, khả năng tương thích, v.v. Các trang còn lại cũng chứa thông tin quan trọng, bao gồm thông tin phân bổ trang cũng như dữ liệu thực tế.

Nếu trang tiêu đề tệp MDF hoặc các trang quản lý quan trọng khác bị hỏng hoặc bị hỏng và Microsoft không thể nhận dạng được SQL Server, Sau đó SQL Server sẽ nghĩ rằng toàn bộ tệp không phải là tệp cơ sở dữ liệu chính hợp lệ và báo cáo lỗi này.

Bạn có thể sử dụng sản phẩm của chúng tôi DataNumen SQL Recovery để khôi phục dữ liệu từ tệp MDF bị hỏng và giải quyết lỗi này.

Các tệp mẫu:

Mẫu tệp MDF bị hỏng sẽ gây ra lỗi:

SQL Server phiên bản Tệp MDF bị hỏng Tệp MDF được cố định bởi 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