Selskab, der vil bruge databasen forenklet kinesisk og traditionelt kinesisk versioner. Jeg brugte dette projekt er den traditionelle kinesiske version af SQLServer, men skal bruge til en anden brug af den forenklede kinesiske version af SQLServer projekt data, har jeg fulgt den sædvanlige praksis i Forenklet kinesisk version af SQLServer i en datatabel i Traditionel kinesisk bruges version af SQLServer, struktur og data til en succes. Jeg begyndte og var ikke klar over dette ville være et problem. Så begyndte jeg at debug SQL-sætninger er en meget enkel to tabeller er forbundet med data udvælgelse som følger:
vælge Tabel1 .* table2 .*
fra Tabel1
indvendige slutte table2 på table2.FK = table1.PK
Logisk sådan en simpel erklæring, der vil give mening ud af ethvert problem, men i Query Analyzer, som altid giver anledning til følgende fejl
Server: Msg 446, Level 16, stat 9, Line 1
Lige til handling kan ikke løse sammenstilling konflikt.
Så søg et øjeblik og så på T-SQL hjælp, ved kun, fordi jeg vil forenklet kinesisk data i SQL Server-tabeller data i Traditionel kinesisk tabel, der sammen med de oprindelige data, en slags og import, resulterer i en forenklet form den slags data stadig forenklet, så jeg kan ikke sammenligne en fejl. Løsningen er at sortere efter navn, fortalte hvordan Query Analyzer kan sorteres. Her vil skulle bruge et søgeord sortere Coliate i SQLServer Books Online er forklaret i:
Sammenholde
En klausul kan anvendes til en database definition eller en kolonne definition at definere sortering regler, eller anvendes ved indsamling strengudtryk at anvende projektionen.
Syntaks:
Sammenholde collation_name
Collation_name :: =
(Windows_collation_name) | (SQL_collation_name)
Parameter
collation_name
Anvendes i udtryk, definitionen af kolonnen definition eller database sammenstilling navn. collation_name kan kun angive Windows_collation_name eller SQL_collation_name.
Windows_collation_name
Windows Indsamlingen databasesorteringsmuligheden navn. Se Windows sammenstilling navn.
SQL_collation_name
SQL Indsamlingen databasesorteringsmuligheden navn. Se SQL sammenstilling navn.
Så hvordan kan vi kende navnet på den aktuelle indsamling er, hvad i virkeligheden navnet på den samling er, at vi oprette databasen (f.eks) kan du vælge det tidspunkt, men normalt vil vi sætte oprindelige standard, ikke dens en ændring, så hvis SQLServer forenklet kinesisk forenklet kinesisk vil bruge standard sortering regler, og hvis SQLServer er traditionelt kinesisk forenklet kinesisk vil bruge standard sortering. Vi ser på databasen (instans) af ejendommen, under fanen Generelt for den nederste linje er, at den nuværende indsamling. I tilfælde af misligholdelse, er forenklet kinesisk sammenstilling navn: Chinese_PRC_CI_AS, og traditionelt kinesisk sammenstilling navn er: Chinese_Taiwan_Stroke_CI_AS, så vi har forenklet, hvis sammenstilling navn traditionelle blanding af tid, så længe en erklæring om, hvad du ønsker at bruge den aktuelle slags sortering regler kan sammenlignes, for eksempel, at for ovennævnte SQL-sætning til følgende to metoder løse det problem, at fejl
SELECT Tabel1 .* Table2 .*
FRA Tabel1
INNER JOIN Table2 ON Table2.FK = Table1.PK Collate Chinese_PRC_CI_AS
SELECT Tabel1 .* Table2 .*
FRA Tabel1
INNER JOIN Table2 ON Table2.FK = Table1.PK Collate Chinese_Taiwan_Stroke_CI_AS
At der for lang tid at løse problemerne i forbindelse med databasesorteringsmuligheden konflikten, hvis der er interesserede, hvorefter SQL Server Books Online på begrebet sortering regler blev sendt til at dele med dig, for at frelse os og derefter gå til:
Microsoft? SQL Server? 2000 understøtter flere anretninger. Sortering regler om kontrol med korrekt anvendelse af sprog (som f.eks makedonske eller polsk) eller alfabet (såsom vesteuropæiske sprog bruger det latinske alfabet Latin1_General) tegnkodning regler.
Hver SQL Server sammenstilling indeholder tre egenskaber:
For Unicode datatyper (nchar, nvarchar og ntext) i sorteringsrækkefølgen. Sorteringsrækkefølge defineret karakter sortere rækkefølge, og sammenligning operationer på tegn i værdien af den metode.
For ikke-Unicode-tegn datatyper (char, varchar og tekst) i sorteringsrækkefølgen.
Bruges til at gemme ikke-Unicode-tegn data af tegntabel.
Hjælp kan ikke angive Unicode datatyper (nchar, nvarchar, og ntext) den tilsvarende tegntabel. For dobbelt-byte Unicode tegn af Unicode standarden definerer smule mønstre og kan ikke ændres.
Kan angives på alle niveauer af SQL Server 2000 sammenholdt. Installer SQL Server 2000 kan eksempelvis angive standard sammenstilling af f.eks. Hver gang du opretter databasen, kan henføres til den standard sammenstilling af databasen. Hvis du ikke angiver sammenstilling af databasen instans standard sammenstilling er standard sortering. Når definitionen af karakter kolonne, variabel eller parameter kan angive den sammenstilling af disse objekter. Hvis indsamling ikke er angivet, vil bruge den standard database indsamling for at oprette disse objekter.
Hvis SQL Server eksempel, at alle brugere anvender det samme sprog, skal sproget valgt at støtte indsamlingen. For eksempel vælge, om alle brugere taler fransk, fransk sortering.
Hvis SQL Server eksempel bruger sprog bør vælges på flersprogede skal kunne yde den bedst mulige støtte for at blive sammenholdt. For eksempel. Hvis en bruger generelt vesteuropæiske sprog, skal du vælge Latin1_General sortering Når støtte til flersprogede bruger alle karakter data ved hjælp af Unicode datatyper nchar, nvarchar, og ntext er vigtigst. Unicode har til formål at fjerne ikke-Unicode char, varchar og tekst datatype tegntabel konvertering vanskeligheder. Sortering til sammenligning, fordi definitionen af operationen orden og Unicode rækkefølge, så når du bruger Unicode datatyper for at nå alle de kolonner, vil sortering have forskellige regler. Selv når du bruger Unicode datatyper gemme karakter data, bør de vælger at støtte indsamlingen af de fleste brugere at undgå at bruge ikke-Unicode-data type kolonne eller variabel at opnå.
Sortering SQL Server database motor til at gemme og drive definition af karakter og Unicode-data. Men når data flyttes ind i programmet, når ansøgningen om sortering og sammenligning tegn, der vælges af computeren styre Windows regionale indstillinger. Program bruger tegndata sammenstilling fra Windows Internationale indstillinger kontrollerer en af de regionale indstillinger definerer også andre projekter, såsom tal, tid, dato og valuta format. For Microsoft Windows NT? 4,0,? Microsoft Windows 98 og Microsoft Windows 95, kan bruge kontrolpanelet "Regional Settings" angivne anvendelsesdato Windows regionale indstillinger. For Microsoft Windows 2000, så brug "Control Panel" i "Internationale indstillinger" anvendelse specificeret lokalitet. Windows regionale indstillinger for yderligere information, se venligst på Microsoft-webstedet MSDN? Page Udvikling International Software til Windows 95 og Windows NT 4,0.
Antal ikke-Unicode indsamling af data kan bruge den samme kode side. For eksempel, 1251 tegntabel definerer kyrilliske tegnsæt. Flere sortering regler (f.eks Cyrillic_General, ukrainske og makedonske) bruge tegntabel. Selv om disse regler er de samme slags sæt bits til at repræsentere den ikke-Unicode tegn oplysninger, men når der beskæftiger sig med ordbog definitioner, sortering og sammenligning regler gælder lidt anderledes, og ordbog definitioner til at bestemme sprog eller alfabet sortering reglerne i forbindelse med de rigtige tegn sekvens.
Fordi SQL Server 2000 Unicode indsamling kontrol og ikke-Unicode sorteringsrækkefølge, så det vil ikke støde den ikke-Unicode-data til Unicode og angive et andet sammenstilling forårsagede problemet. I tidligere versioner af SQL Server på koden sidetallet, sorteringsrækkefølge og Unicode bearbejdning specificeres særskilt. Tidligere versioner af SQL Server understøtter også et forskelligt antal for hver kode side sorteringsrækkefølge, og for at foretage visse kode sider i Windows regionale indstillinger ikke den slags orden. I SQL Server 7,0, kan du også angive de data, der er udvalgt til ikke-Unicode sortere anden rækkefølge end den Unicode sorteringsrækkefølge. Dette vil resultere i brug og ikke-Unicode-data i forhold Unicode-data, sortering og sammenligning operationer returnere forskellige resultater.