Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 13630|Svare: 0

[Tips] Se SQL-setninger i SQLserver-kodingsformat og Sqlserver-sorteringsregler

[Kopier lenke]
Publisert på 27.10.2016 12:50:16 | | | |
VELG COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
Her er søkeresultatene:
936 kinesisk forenklet GBK
950 kinesisk tradisjonell BIG5
437 amerikansk/kanadisk engelsk
932 japanere
949 koreansk
866 russisk
65001 unicode UFT-8




Da vi installerte SQL SERVER 2008, fordi vi valgte standardinstallasjonen, opprettet vi denNår det gjelder database, er standardsorteringsregelen valgt av serveren en SQL_Latin1_General_CP1_CI_AS sorteringsregel, slik at når tekst settes inn i datatabellen, vises den ikke normalt, alt med "? I stedet.
Når vi lager en database, må vi manuelt spesifisere en kollasjonsregel, som kan velges som Chinese_PRC_CI_AS sortering, som vist i figuren under





Sorteringsregler:
Sorteringsreglene som brukes i SQLSEVER2005 er SQL_Latin1_General_CP1_CI_AS, ikke de tre sorteringsreglene som kan vise forenklede kinesiske tegn korrekt:
Chinese_PRC_BIN,
Chinese_PRC_CI_AS,
Chinese_PRC_CS_AS。
Ta en titt på MS sin forklaring av kollasjon: Collation Rules Control Physical Storage of Strings in SQL Server 2005. Kollasjonsregler spesifiserer bitmønsteret som representerer hvert tegn og reglene for lagring og sammenligning av tegnbruk.
Det vil si, i SQLSERVER er sorteringen faktisk tegnkodingen.
Ved å kjøre følgende setning i spørringsanalysatoren, kan du få alle sorteringsreglene som støttes av SQL SERVER.
Velg * fra ::fn_helpcollations()
Sorteringsnavnet består av to deler, den første delen refererer til tegnsettet som støttes av denne sorteringen.
For eksempel: Chinese_PRC_CS_AI_WS
Den første halvdelen refererer til UNICODE-tegnsettet, og Chinese_PRC_refers til sorteringsreglene for det forenklede kinesiske tegnet UNICODE.
Den andre halvdelen av kollasjonen er betydningen av suffikset:
_BIN Binær sortering
_CI(CS) Enten det er kasusfølsomt, CI er ikke sensitivt, og CS er sensitivt
_AI (AS) Om man skal skille mellom aksenter, skiller ikke AI, AS skiller mellom aksenter
_KI(KS) Om man skal skille mellom pseudonymtyper, gjør ikke KI det, KS skiller mellom pseudonymtyper.
_WI(WS) er ikke bredde-distinkt, WS er ikke differensiert
Følsomt for små og små bokstaver: Velg dette alternativet hvis du vil ha sammenligninger for å behandle store og små bokstaver som ulike.
Skille mellom aksenter: Velg dette alternativet hvis du vil ha sammenligninger for å behandle aksenterte og utrykte bokstaver som ulige. Hvis du velger det alternativet, behandler sammenligningen også bokstaver med ulike aksenter som ulike.
Skille Kana: Velg dette alternativet hvis du vil at sammenligningen skal behandle Katakana- og Hiraka-dagsstavelsene som ulike.
Breddedifferensiering: Velg dette alternativet hvis du vil at sammenligningen skal behandle halvbredde- og fullbredde-tegn som ulike.
Etter å ha forstått kollasjonsreglene i SQLSERVER, kan følgende konklusjoner trekkes for problemet ovenfor:
1. Endre SQLSERVER-brukerdatabasen for å støtte sortering av kinesiske tegnsett.
2: For visning av kinesiske tegn??, men som ikke ønsker å endre sorteringsreglene i databasen, og ønsker å vise kinesiske tegn korrekt, anbefales det å bruke alle Unicode-typer i designet, altså de felttypene som starter med N, som nChar, nVarchar, for å vise kinesiske tegn korrekt.
3: Hvis du ikke vil endre sorteringsregelen eller felttypen, må du endre SQL-setningen, og for alle kinesiske tegn må du også legge til N foran for å vise det riktig. Vennligst se følgende to utsagn for spesifikke metoder:
Spørring: velg * fra tb_Cust hvor Fornavn=N'Wang'
Sett inn: sett inn tb_Cust(Fornavn, Etternavn, Kjønn) verdier (N'Wang', N'Xinhao', N'Mann')
Merk: For fremtiden vil det være mer krevende å endre servernivå-kollasjonsregelen etter SQLSERVER2000, og det er nødvendig å bygge opp hoveddatabasen på nytt.

For øyeblikket, for databaser som allerede er opprettet, kan vi også endre sorteringsmetoden på alternativsiden i egenskapsvinduet i databasen, slik at når tekst settes inn i datatabellen, vil det ikke komme noen feilmeldinger!





Foregående:SQL avgjør om en kolonne inneholder kinesiske eller engelske tegn
Neste:SQL avgjør om en kolonne inneholder kinesiske eller engelske tegn
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com