SELECTEER COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage') Hier zijn de zoekresultaten:
936 Chinees, vereenvoudigde GBK 950 Chinese Traditionele BIG5 437 Amerikaans/Canadees Engels 932 Japanners 949 Koreaans 866 Russisch 65001 unicode UFT-8
Bij het installeren van SQL SERVER 2008, omdat we de standaardinstallatie kozen, hebben we deze aangemaaktBij databases is de standaard sorteerregel die door de server wordt geselecteerd een SQL_Latin1_General_CP1_CI_AS collatieregel, zodat bij het invoegen van tekst in de datatabel deze niet normaal wordt weergegeven, allemaal met "? in plaats daarvan.
Wanneer we vervolgens een database aanmaken, moeten we handmatig een collatieregel specificeren, die als Chinese_PRC_CI_AS collatie kan worden geselecteerd, zoals te zien is in de onderstaande figuur
Sorteerregels:
De sorteerregels die in SQLSEVER2005 worden gebruikt, zijn SQL_Latin1_General_CP1_CI_AS, niet de drie sorteerregels die vereenvoudigde Chinese karakters correct kunnen weergeven:
Chinese_PRC_BIN,
Chinese_PRC_CI_AS,
Chinese_PRC_CS_AS。
Bekijk MS's uitleg over collatie: Collation Rules Control Physical Storage of Strings in SQL Server 2005. Collatieregels specificeren het bitpatroon dat elk teken vertegenwoordigt en de regels voor het opslaan en vergelijken van het gebruik van tekens.
Dat wil zeggen, in SQLSERVER is de collatie eigenlijk de tekencodering.
Door de volgende instructie in de query-analyzer uit te voeren, kun je alle collatieregels krijgen die door SQL SERVER worden ondersteund.
Selecteer * uit ::fn_helpcollations()
De naam van de collatie bestaat uit twee delen, waarbij het eerste deel verwijst naar de tekenset die door deze collatie wordt ondersteund.
Bijvoorbeeld: Chinese_PRC_CS_AI_WS
De eerste helft verwijst naar de UNICODE-tekenset en Chinese_PRC_refers naar de sorteerregels voor het vereenvoudigde Chinese karakter UNICODE.
De tweede helft van de collatie is de betekenis van het achtervoegsel:
_BIN Binaire sortering
_CI(CS) Of het nu hoofdlettergevoelig is, CI is niet gevoelig, en CS is gevoelig
_AI (AS) Of er nu accenten worden onderscheiden, AI maakt geen onderscheid, AS maakt onderscheid
_KI(KS) Of om te onderscheiden tussen pseudoniemtypen, KI doet dat niet, KS maakt onderscheid
_WI(WS) is niet breedte-onderscheiden, WS is niet gedifferentieerd
Hoofdlettergevoelig: Kies deze optie als je vergelijkingen wilt om hoofd- en kleine letters als ongelijk te behandelen.
Onderscheid tussen accenten: Kies deze optie als je vergelijkingen wilt om accent- en onbeklemtoonde letters als ongelijk te behandelen. Als je die optie kiest, behandelt de vergelijking ook letters met verschillende accenten als ongelijk te zien.
Onderscheid Kana: Kies deze optie als je wilt dat de vergelijking de lettergrepen van Katakana en Hiraka Day als ongelijk behandelt.
Breedtedifferentiatie: Selecteer deze optie als je wilt dat de vergelijking halve en volledige breedte karakters als ongelijk behandelt.
Na het begrijpen van de collatieregels in SQLSERVER kunnen de volgende conclusies worden getrokken voor het bovenstaande probleem:
1. Pas de SQLSERVER-gebruikersdatabase aan om de verzameling van Chinese tekenreeksen te ondersteunen.
2: Voor het weergeven van Chinese karakters??, maar als je de sorteerregels in de database niet wilt wijzigen en Chinese karakters correct wilt weergeven, wordt aanbevolen om alle Unicode-velden in het ontwerp te gebruiken, dat wil zeggen veldtypen die beginnen met N, zoals nChar, nVarchar, om Chinese karakters correct weer te geven.
3: Als je de rangatieregel of het veldtype niet wilt wijzigen, moet je de SQL-instructie wijzigen, en voor alle Chinese tekens moet je ook N eraan toevoegen om het correct weer te geven. Raadpleeg de volgende twee verklaringen voor specifieke methoden:
Query: selecteer * uit tb_Cust waar FirstName=N'Wang'
Invoegen: invoegen tb_Cust(Voornaam, Achternaam, Geslacht) waarden (N'Wang', N'Xinhao', N'Male')
Opmerking: Voor de toekomst zal het lastiger zijn om de server-niveau collatieregel na SQLSERVER2000 aan te passen, en het is noodzakelijk om de masterdatabase opnieuw op te bouwen.
Momenteel kunnen we voor databases die al zijn aangemaakt ook de sorteringsmethode wijzigen op de optiepagina in het eigenschappenvenster van de database, zodat er bij het invoegen van tekst in de datatabel geen foutmeldingen meer zijn!
|