Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 13630|Atsakyti: 0

[Patarimai] Peržiūrėkite SQL sakinius SQLserver kodavimo formatu ir Sqlserver sugretinimo taisyklėmis

[Kopijuoti nuorodą]
Paskelbta 2016-10-27 12:50:16 | | | |
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
Štai užklausos rezultatai:
936 Kinų supaprastinta GBK
950 kinų tradicinis BIG5
437 JAV / Kanados anglų kalba
932 Japonų kalba
949 Korėjiečių
866 rusų
65001 unikodas UFT-8




Diegdami SQL SERVER 2008, nes pasirinkome numatytąjį diegimą, jį sukūrėmeKai duomenų bazė, numatytoji serverio pasirinkta rūšiavimo taisyklė yra SQL_Latin1_General_CP1_CI_AS sugretinimo taisyklė, kad įterpiant tekstą į duomenų lentelę, jis nebus rodomas normaliai, visi su "? vietoj to.
Tada, kurdami duomenų bazę, turime rankiniu būdu nurodyti sulyginimo taisyklę, kurią galima pasirinkti kaip Chinese_PRC_CI_AS lyginimą, kaip parodyta paveikslėlyje žemiau





Rūšiavimo taisyklės:
SQLSEVER2005 naudojamos rūšiavimo taisyklės yra SQL_Latin1_General_CP1_CI_AS, o ne trys rūšiavimo taisyklės, kurios gali teisingai rodyti supaprastintus kinų kalbos simbolius:
Chinese_PRC_BIN,
Chinese_PRC_CI_AS,
Chinese_PRC_CS_AS。
Pažvelkite į MS paaiškinimą apie sugretinimą: Lyginimo taisyklės kontroliuoja fizinį eilučių saugojimą SQL Server 2005. Lyginimo taisyklės nurodo bitų šabloną, kuris atspindi kiekvieną simbolį, ir simbolių naudojimo saugojimo bei palyginimo taisykles.
Tai yra, SQLSERVER sugretinimas iš tikrųjų yra simbolių kodavimas.
Vykdydami šį teiginį užklausų analizatoriuje, galite gauti visas SQL SERVER palaikomas sugretinimo taisykles.
Pasirinkite * iš ::fn_helpcollations()
Lyginimo pavadinimas susideda iš dviejų dalių, pirmoji dalis nurodo simbolių rinkinį, kurį palaiko šis sulyginimas.
Pavyzdžiui: Chinese_PRC_CS_AI_WS
Pirmoji pusė nurodo UNICODE simbolių rinkinį, o Chinese_PRC_refers supaprastinto kinų simbolio UNICODE rūšiavimo taisykles.
Antroji sulyginimo pusė yra priesagos reikšmė:
_BIN Dvejetainis rūšiavimas
_CI(CS) Ar jis skiria didžiąsias ir mažąsias raides, ar CI nėra jautrus, o CS yra jautrus
_AI (AS) Ar atskirti akcentus, AI neskiria, AS išskiria
_KI(KS) Ar atskirti pseudonimų tipus, KI ne, KS išskiria
_WI(WS) neskiriamas pagal plotį, WS nediferencijuojamas
Skiriamos didžiosios ir mažosios raidės: pasirinkite šią parinktį, jei norite, kad lyginant didžiosios ir mažosios raidės būtų traktuojamos kaip nevienodos.
Atskirti akcentus: pasirinkite šią parinktį, jei norite, kad palyginimai kirčiuotos ir nekirčiuotos raidės būtų traktuojamos kaip nevienodos. Jei pasirinksite šią parinktį, palyginimas taip pat traktuoja raides su skirtingais akcentais kaip nevienodas.
Atskirti Kana: Pasirinkite šią parinktį, jei norite, kad palyginimas Katakana ir Hiraka dienos skiemenys būtų traktuojami kaip nevienodi.
Pločio diferenciacija: pasirinkite šią parinktį, jei norite, kad palyginus pusės pločio ir viso pločio simbolius būtų traktuojami kaip nevienodi.
Supratus SQLSERVER lyginimo taisykles, galima padaryti šias išvadas dėl aukščiau pateiktos problemos:
1. Modifikuokite SQLSERVER vartotojų duomenų bazę, kad palaikytumėte kinų simbolių rinkinių sugretinimą.
2: Kinų simbolių rodymui??, bet nenorite keisti rūšiavimo taisyklių duomenų bazėje ir norite teisingai rodyti kinų simbolius, rekomenduojama dizaine naudoti visus Unicode tipo laukus, tai yra tuos laukų tipus, prasidedančius N, pvz., nChar, nVarchar, kad kinų simboliai būtų rodomi teisingai.
3: Jei nenorite keisti sulyginimo taisyklės ar lauko tipo, turite pakeisti SQL sakinį, o visiems kiniškiems simboliams taip pat turite pridėti N, kad jis būtų tinkamai rodomas. Žr. šiuos du teiginius apie konkrečius metodus:
Užklausa: pasirinkite * iš tb_Cust, kur FirstName=N'Wang'
Įterpti: įterpti tb_Cust(Vardas,Pavardė,Lytis) reikšmes(N'Wang',N'Xinhao',N'Vyras')
Pastaba: Ateityje bus sunkiau modifikuoti serverio lygio sulyginimo taisyklę po SQLSERVER2000, todėl būtina iš naujo sukurti pagrindinę duomenų bazę.

Šiuo metu jau sukurtoms duomenų bazėms taip pat galime pakeisti lyginimo metodą duomenų bazės ypatybių lango parinkčių puslapyje, kad įterpiant tekstą į duomenų lentelę nebūtų klaidų pranešimų!





Ankstesnis:SQL nustato, ar stulpelyje yra kinų, ar anglų kalbos simbolių
Kitą:SQL nustato, ar stulpelyje yra kinų, ar anglų kalbos simbolių
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com