Triệu chứng
Giả định rằng bạn tìm cách tải một tệp từ điển đồng nghĩa trong bất kỳ phiên bản ngôn ngữ nào của Microsoft SQL Server 2008 R2 có thể sử dụng biểu tượng ký tự byte kép (DBCS). Tệp bản chứa các từ đồng nghĩa có một hậu tố "0x20". Trong trường hợp này, tệp bản không tải và bạn nhận được thông báo lỗi sau đây:
Msg 50000, Level 16, trạng thái 1, sp_fulltext_rethrow_error thủ tục, dòng 36Error 30049, Level 16, State 1, thủ tục sp_fulltext_thesaurus_update, Line 61, thông báo: toàn bộ lỗi chính tả trong hệ số (HRESULT = ' 0x8007054e ')
Nguyên nhân
Sự cố này xảy ra vì hàm len trả về các từ đồng nghĩa không chính xác có chứa "0x20" (hậu tố). Hậu tố "0x20" được hiểu là ký tự không gian ASCII. Do đó, hàm len trả về một giá trị nhỏ hơn của độ dài dữ liệu.
Giải pháp
Thông tin Cập Nhật tích lũy
Bản Cập Nhật tích lũy 4 cho SQL Server 2008 R2 gói dịch vụ 2 (SP2)
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong bản Cập Nhật Cumulative 4. Để biết thêm thông tin về cách tải gói Cập Nhật tích lũy cho SQL Server 2008 R2 Service Pack 2, hãy bấm số bài viết sau đây để xem bài viết trong cơ sở kiến thức Microsoft:
2777358 Gói Cập Nhật tích lũy 4 cho SQL Server 2008 R2 gói dịch vụ 2Lưu ý Vì bản dựng được tích lũy, mỗi bản phát hành khắc phục sự cố mới chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật được đưa vào bản phát hành SQL Server 2008 R2 gói dịch vụ trước đó 2. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2730301 Bản dựng SQL Server 2008 R2 đã được phát hành sau khi SQL Server 2008 R2 Service Pack 2 đã được phát hànhGhi chú Sau khi bạn áp dụng hotfix này, hàm Datalength sẽ được sử dụng thay cho hàm len .
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".