Sümptomid
Oletagem, et proovite laadida tesaurust Microsoft SQL Server 2008 R2 mis tahes keeles, mis kasutab topelt byte märgistik (DBCS) kogumit. Tesaurus sisaldab sünonüüme, millel on "0x20" järelliite. Selles olukorras ei laadita tesaurust ja kuvatakse järgmine tõrketeade:
MSG 50000, tase 16, olek 1, protseduur sp_fulltext_rethrow_error, rida 36Error 30049, tase 16, olek 1, protseduur sp_fulltext_thesaurus_update, rida 61, sõnum: täistekstiotsingul tesauruse sisemine tõrge (HRESULT = "0x8007054e")
Põhjus
See probleem ilmneb, sest funktsioon LEN annab valed sünonüümid, millel on "0x20" järelliide. Järelliite "0x20" tõlgendatakse ASCII-tühikuna. Seetõttu tagastatakse funktsioon LEN andmete pikkuse ühe väiksema väärtuse.
Lahendus
Kumulatiivse värskenduse teave
Kumulatiivne Update 4 for SQL Server 2008 R2 hoolduspakett Service Pack 2 (SP2)
Selle probleemi parandus anti esmakordselt välja kumulatiivne Update 4. Lisateavet selle kumulatiivse värskenduspaketi SQL Server 2008 R2 hoolduspaketi SP2 hankimise kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
2777358 SQL Server 2008 R2 hoolduspaketi SP2 koondvärskenduses pakett 4Märkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmise SQL Server 2008 R2 hoolduspaketiga Service Pack 2 parandada vabastamist. Soovitame teil kaaluda kõige uuemate paranduste rakendamist, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
2730301 Pärast SQL Server 2008 R2 hoolduspaketti SP2 välja antud SQL Server 2008 R2 järgudMärkus Pärast selle käigultparanduse rakendamist kasutatakse funktsiooni LEN asemel funktsiooni DATALENGTH .
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "kehtib järgmiste toodete kohta" loetletud Microsofti toodetes.