Simptomi
Pieņemiet, ka mēģinot ielādēt tēzaura failu jebkurā Microsoft SQL Server 2008 R2 valodas versijā, kurā tiek izmantota dubultā baitu rakstzīmju kopa (DBCS) komplektēšana. Tēzaura failā ir sinonīmi, kuriem ir "0x20" sufikss. Šajā gadījumā tēzaura fails netiek ielādēts, un tiek parādīts šāds kļūdas ziņojums:
Msg 50000, Level 16, State 1, Procedure sp_fulltext_rethrow_error, Line 36Error 30049, Level 16, State 1, Procedure sp_fulltext_thesaurus_update, Line 61, Message: Fulltext Tēzaurs iekšējā kļūda (HRESULT = "0x8007054e")
Cēlonis
Šī problēma rodas tāpēc, ka funkcija LEN atgriež nepareizus sinonīmus, kuru sufikss ir "0x20". "0x20" sufikss tiek interpretēts kā ASCII atstarpes rakstzīme. Tāpēc funkcija LEN atgriež vienu mazāku datu garuma vērtību.
Risinājums
Kumulatīvās atjaunināšanas informācija
Kumulatīvais atjauninājums 4 SQL Server 2008 R2 2. servisa pakotne (SP2)
Šīs problēmas labojums pirmo reizi tika izlaists kumulatīvajā atjaunināšanā 4. Lai iegūtu papildinformāciju par to, kā iegūt šo kumulatīvo atjaunināšanas pakotni SQL Server 2008 R2 2. servisa pakotnei, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2777358 Kumulatīvās atjaunināšanas pakotne 4 SQL Server 2008 R2 2. servisa pakotneiPiezīme. Tā kā būvējums ir kumulatīvs, katrā jaunajā laidienā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā SQL Server 2008 R2 2. servisa pakotnes labošanas laidienā. Iesakām apsvērt jaunāko labojumu laidienu, kurā ir iekļauts šis labojumfails. Lai iegūtu papildinformāciju, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
2730301 SQL Server 2008 R2 būvējumi, kas tika izlaisti pēc tam, kad tika izlaista SQL Server 2008 R2 2. servisa pakotnePiezīmes Pēc šī labojumfaila lietošanas funkcija DATALENGTH tiek izmantota funkcijas LEN vietā.
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".