|
|
Zverejnené 27. 10. 2016 12:50:16
|
|
|
|

VYBERTE COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage') Tu sú výsledky dotazu:
936 čínskych zjednodušených GBK 950 čínskych tradičných BIG5 437 americká/kanadská angličtina 932 Japonci 949 Kórejčan 866 Rusko 65001 unicode UFT-8
Pri inštalácii SQL SERVER 2008, pretože sme zvolili predvolenú inštaláciu, vytvorili sme juPri databáze je predvolené triediace pravidlo vybrané serverom SQL_Latin1_General_CP1_CI_AS pravidlo kolácie, takže pri vkladaní textu do dátovej tabuľky sa nezobrazuje normálne, všetko s "? namiesto toho.
Potom, keď vytvárame databázu, musíme manuálne špecifikovať pravidlo kolácie, ktoré možno vybrať ako Chinese_PRC_CI_AS koláciu, ako je znázornené na obrázku nižšie
Pravidlá triedenia:
Triediace pravidlá použité v SQLSEVER2005 sú SQL_Latin1_General_CP1_CI_AS, nie tri triediace pravidlá, ktoré dokážu správne zobraziť zjednodušené čínske znaky:
Chinese_PRC_BIN,
Chinese_PRC_CI_AS,
Chinese_PRC_CS_AS。
Pozrite si vysvetlenie kolácie od MS: Collation Rules Control Physical Storage of Strings in SQL Server 2005. Pravidlá kolácie určujú bitový vzor, ktorý reprezentuje každý znak, a pravidlá na ukladanie a porovnávanie používania znakov.
To znamená, že v SQLSERVER je kolácia vlastne kódovanie znakov.
Vykonaním nasledujúceho príkazu v analyzátore dotazov môžete získať všetky kolačné pravidlá podporované SQL SERVEROM.
Vyberte * z ::fn_helpcollations()
Názov kolácie pozostáva z dvoch častí, prvá časť odkazuje na znakovú sadu podporovanú touto koláciou.
Napríklad: Chinese_PRC_CS_AI_WS
Prvá polovica sa vzťahuje na znakovú sadu UNICODE a Chinese_PRC_refers na triediace pravidlá pre zjednodušený čínsky znak UNICODE.
Druhá polovica kolácie je význam prípony:
_BIN Binárne triedenie
_CI(CS) Či už je citlivý na veľkosť písmen, CI nie je citlivý a CS je citlivý
_AI (AS) Či rozlišovať medzi prízvukmi, AI nerozlišuje, AS rozlišuje
_KI(KS) Či rozlišovať medzi typmi pseudonymov, KI nerozlišuje, KS rozlišuje
_WI(WS) nie je rozlíšený šírkou, WS nie je diferencovaný
Citlivosť na veľké písmená: Vyberte túto možnosť, ak chcete porovnania, ktoré budú považovať veľké a malé písmená za nerovné.
Rozlišujte medzi prízvukmi: Vyberte túto možnosť, ak chcete, aby porovnania považovali prízvukové a neprízvučné písmená za nerovné. Ak si vyberiete túto možnosť, porovnanie tiež považuje písmená s rôznymi prízvukmi za nerovné.
Rozlíšte Kana: Vyberte túto možnosť, ak chcete, aby porovnanie považovalo slabiky Katakana a Hiraka Day za nerovné.
Rozlíšenie šírky: Vyberte túto možnosť, ak chcete, aby porovnanie považovalo znaky polovičnej a plnej šírky za nerovné.
Po pochopení pravidiel kolácie v SQLSERVER možno pre vyššie uvedený problém vyvodiť nasledujúce závery:
1. Upraviť používateľskú databázu SQLSERVER tak, aby podporovala triedenie čínskych znakov.
2: Pri zobrazovaní čínskych znakov??, ale nechcete meniť triediace pravidlá v databáze a chcete zobrazovať čínske znaky správne, sa odporúča použiť všetky Unicode typy polí v návrhu, teda tie typy polí začínajúce na N, ako nChar, nVarchar, na správne zobrazenie čínskych znakov.
3: Ak nechcete meniť pravidlo kolácie alebo typ poľa, musíte zmeniť SQL príkaz a pre všetky čínske znaky musíte pridať pred neho aj N, aby sa správne zobrazil. Pre konkrétne metódy sa prosím pozrite na nasledujúce dve tvrdenia:
Dotaz: vyberte * z tb_Cust kde FirstName=N'Wang'
Vložiť: vložiť hodnoty tb_Cust(Krstné meno, Priezvisko, Pohlavie) (N'Wang', N'Xinhao', N'Male')
Poznámka: Do budúcnosti bude po SQLSERVER2000 náročnejšie upravovať pravidlo kolácie na úrovni servera a je potrebné obnoviť hlavnú databázu.
V súčasnosti môžeme pre databázy, ktoré už boli vytvorené, tiež zmeniť spôsob triedenia na stránke možností v okne vlastností databázy, aby pri vkladaní textu do dátovej tabuľky neboli žiadne chybové hlásenia!
|
Predchádzajúci:SQL určuje, či stĺpec obsahuje čínske alebo anglické znakyBudúci:SQL určuje, či stĺpec obsahuje čínske alebo anglické znaky
|