|
|
Zveřejněno 27.10.2016 12:50:16
|
|
|
|

VYBERTE COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage') Zde jsou výsledky dotazu:
936 čínských zjednodušených GBK 950 čínských tradičních BIG5 437 americká/kanadská angličtina 932 Japonci 949 Korean 866 Rusko 65001 unicode UFT-8
Při instalaci SQL SERVER 2008, protože jsme zvolili výchozí instalaci, vytvořili jsme jiKdyž je databáze výchozím pravidlem třídění zvoleným serverem, SQL_Latin1_General_CP1_CI_AS pravidlo třídění, takže při vkládání textu do datové tabulky se nezobrazí normálně, vše s "? místo toho.
Když pak vytváříme databázi, musíme ručně zadat pravidlo kolace, které lze vybrat jako Chinese_PRC_CI_AS kolaci, jak je znázorněno na obrázku níže
Pravidla třídění:
Pravidla třídění používaná v SQLSEVER2005 jsou SQL_Latin1_General_CP1_CI_AS, nikoli tři pravidla třídění, která by správně zobrazovala zjednodušené čínské znaky:
Chinese_PRC_BIN,
Chinese_PRC_CI_AS,
Chinese_PRC_CS_AS。
Podívejte se na MS vysvětlení kolace: Collation Rules Control Physical Storage of Strings in SQL Server 2005. Pravidla třídění určují bitový vzor, který reprezentuje každý znak, a pravidla pro ukládání a porovnávání použití znaků.
To znamená, že v SQLSERVERu je třídění vlastně kódování znaků.
Vykonáním následujícího příkazu v analyzátoru dotazů můžete získat všechna kolační pravidla podporovaná SQL SERVERem.
Vyberte * z ::fn_helpcollations()
Název kolace se skládá ze dvou částí, první část odkazuje na znakovou sadu podporovanou touto kolekcí.
Například: Chinese_PRC_CS_AI_WS
První polovina se vztahuje na znakovou sadu UNICODE a Chinese_PRC_refers na pravidla třídění pro zjednodušený čínský znak UNICODE.
Druhá polovina kolace je význam přípony:
_BIN Binární třídění
_CI(CS) Ať už je citlivý na velká písmena, CI není citlivý a CS je citlivý
_AI (AS) Zda rozlišovat přízvuky, AI nerozlišuje, AS rozlišuje
_KI(KS) Zda rozlišovat typy pseudonymů, KI ne, KS rozlišuje
_WI(WS) není rozlišený šířkou, WS není diferencovaný
Citlivost na velká písmena: Vyberte tuto možnost, pokud chcete, aby srovnání byla považována za nerovná velká a malá písmena.
Rozlište mezi přízvuky: Vyberte tuto možnost, pokud chcete, aby srovnání považovala přízvučná a nepřízvučná písmena za nerovná. Pokud zvolíte tuto možnost, porovnání také považuje písmena s různými přízvuky za nerovná.
Rozlišit Kana: Vyberte tuto možnost, pokud chcete, aby srovnání považovalo katakany a Hiraka Day slabiky za nerovné.
Rozlišení šířky: Vyberte tuto možnost, pokud chcete, aby srovnání považovalo znaky za nerovné.
Po pochopení kolačních pravidel v SQLSERVERu lze pro výše uvedený problém vyvodit následující závěry:
1. Upravit uživatelskou databázi SQLSERVER tak, aby podporovala třídění čínských znakových sad.
2: Pro zobrazení čínských znaků??, ale nechcete měnit pravidla třídění v databázi a chcete zobrazit čínské znaky správně, se doporučuje používat všechna pole typu Unicode v návrhu, tedy ty pole začínající na N, jako nChar, nVarchar, pro správné zobrazení čínských znaků.
3: Pokud nechcete měnit pravidlo kolace nebo typ pole, musíte změnit SQL příkaz a u všech čínských znaků musíte také přidat N před něj, aby se správně zobrazil. Pro konkrétní metody se prosím podívejte na následující dvě tvrzení:
Dotaz: vyberte * z tb_Cust kde FirstName=N'Wang'
Vložit: vložit hodnoty tb_Cust(Křestní, Příjmení, Pohlaví) (N'Wang', N'Xinhao', N'Muž')
Poznámka: Do budoucna bude obtížnější upravovat pravidlo kolace na úrovni serveru po SQLSERVER2000 a je nutné znovu vytvořit hlavní databázi.
V současnosti můžeme u již vytvořených databází změnit metodu třídění také na stránce možností v okně vlastností databáze, takže při vkládání textu do datové tabulky nebudou žádné chybové hlášky!
|
Předchozí:SQL určuje, zda sloupec obsahuje čínské nebo anglické znakyDalší:SQL určuje, zda sloupec obsahuje čínské nebo anglické znaky
|