En blandning av traditionell och förenklad data, SQL Server frågor



Bolag som kommer att använda databasen förenklad kinesiska och traditionell kinesiska versioner. Jag använde detta projekt är den traditionella kinesiska versionen av SQLServer, men behovet av att använda till en annan använda det förenklade kinesiska versionen av SQLServer projektets uppgifter har jag följt gängse praxis hos de förenklade kinesiska versionen av SQLServer i en datatabell till traditionell kinesiska används version av SQLServer, struktur och data till en framgång. Jag började och insåg inte detta skulle vara ett problem. Då började jag att felsöka SQL är en mycket enkel två tabeller med data val enligt följande:

välj Tabell1 .*, Tabell2 .*

ur tabell 1

inre koppling Tabell2 på table2.FK = table1.PK

Logiskt sett en sådan enkel förklaring som kommer att göra känsla av något problem, men i Query Analyzer som alltid föranleder följande misstag

Server: Msg 446, Level 16, statligt 9, Line 1

Lika med åtgärder kan inte lösa sammanställning konflikt.

Sedan söka efter en stund och sedan tittade på T-SQL hjälp, vet bara att jag kommer att förenklad kinesiska data i SQL Server-tabeller data till traditionell kinesiska tabell som, tillsammans med de ursprungliga uppgifterna, ett slags och import, leder till förenklad form den typ av data fortfarande förenklad, så jag kan inte jämföra med ett fel. Lösningen är att sortera efter namn, berättade om hur Query Analyzer kan sorteras. Här kommer att behöva använda ett sökord KALLA Coliate i SQLServer Books Online förklaras:

KALLA

En klausul kan tillämpas på en databas definition eller en kolumn definition för att definiera sortering regler, eller används i sammanställningen strängen uttrycket att tillämpa projektion.

Syntax:

KALLA collation_name

Collation_name :: =

(Windows_collation_name) | (SQL_collation_name)

Parameter

collation_name

Används i uttryck, definitionen av kolumndefinitionen eller databasen sammanställning namn. collation_name kan endast ange Windows_collation_name eller SQL_collation_name.

Windows_collation_name

Windows sammanställning är att samla in namn. Se Windows sammanställning namn.

SQL_collation_name

SQL sammanställning är att samla in namn. Se SQL sammanställning namn.

Så hur kan vi veta namnet på den aktuella sammanställningen är vad som i själva verket är namnet på den sammanställning vi skapa databasen (t.ex.) kan du välja tid, men oftast kommer vi att ställa den ursprungliga standard inte dess en förändring, så om SQLServer förenklad kinesiska förenklad kinesiska kommer att använda de regler standard sortering, och om SQLServer är traditionell kinesiska Förenklad kinesiska kommer att använda förvalda sammanställning. Vi tittar på databasen (t.ex.) för en fastighet, är fliken Allmänt i den nedre raden att den nuvarande sammanställning. När det gäller standard är förenklad kinesiska sammanställning namn: Chinese_PRC_CI_AS och traditionell kinesiska samla namn är: Chinese_Taiwan_Stroke_CI_AS, så vi är förenklas om sammanställning namnet på den traditionella blandningen av tid, så länge ett uttalande om vad du vill använda den aktuella typ av sortering regler kan jämföras, till exempel att för ovan nämnda SQL uttalande till följande två metoder att lösa problemet att fel

SELECT Tabell1 .*, Tabell2 .*

FRÅN Tabell1

INNER JOIN Tabell2 PÅ Table2.FK = Table1.PK KALLA Chinese_PRC_CI_AS

SELECT Tabell1 .*, Tabell2 .*

FRÅN Tabell1

INNER JOIN Tabell2 PÅ Table2.FK = Table1.PK KALLA Chinese_Taiwan_Stroke_CI_AS

Att för lång tid att lösa de problem som orsakas av sammanställningen konflikten, om det finns intresserade, varefter SQL Server Books Online om begreppet sortering regler lades ut för att dela med dig, för att rädda oss och sedan gå till:

Microsoft? SQL Server? 2000 stöder flera collations. Sortera regler för att övervaka en korrekt användning av språket (t.ex. makedonska eller polska) eller alfabetet (t.ex. den västeuropeiska språk använder det latinska alfabetet Latin1_General) regler teckenkodning.

Varje SQL Server sammanställning anger tre egenskaper:

För Unicode datatyper (nchar, nvarchar och ntext) i sorteringsordningen. Sorteringsordning definieras sekvens karaktär sortera och operationer jämförelse på de tecken i värdet av metoden.

För icke-Unicode-tecken datatyper (röding, varchar och text) i sorteringsordningen.

Används för att lagra icke-Unicode-tecken uppgifter om teckentabell.

Hjälp kan inte ange Unicode datatyper (nchar, nvarchar och ntext) motsvarande kod sidan. För dubbelbytetecken Unicode-tecken med Unicode-standarden definierar lite mönster och kan inte ändras.

Kan specificeras på någon nivå i SQL Server 2000 sammanställning. Installera SQL Server 2000 kan t ex ange standardprogram sammanställning av instans. Varje gång du skapar databasen, kan hänföras till den standard sammanställning av databasen. Om du inte anger sammanställning av databasen instans standard sortering är standardinställningen sammanställning. När definitionen av karaktären kolumn, variabel eller parameter kan ange sammanställning av dessa föremål. Om sortering inte anges, kommer att använda kollationering standard databas för att skapa dessa objekt.

Om SQL Server-instans att alla användare använder samma språk och det språk väljas till stöd för sammanställning. Om exempelvis alla användare talar franska, väljer franska sammanställning.

Om SQL Server-instans användarens språk bör väljas på flerspråkiga behov för att ge bästa stöd för sammanställning. Till exempel, om en användare i allmänhet västeuropeiska språk, välj Latin1_General sammanställning. När stödet för flerspråkiga användare, är alla tecken data med hjälp av Unicode datatyper nchar, nvarchar och ntext viktigaste. Unicode syftar till att eliminera icke-Unicode röding, varchar och data texttyp kodsida omvandling svårigheter. Sortering för jämförelser eftersom definitionen av operationen ordning och Unicode-tecken sorteringsordning, så när du använder Unicode datatyper för att uppnå alla kolumner kommer sortering har olika regler. Även när du använder Unicode datatyper lagra teckendata, bör de flesta användare valt att stödja genom sammanställning, att förhindra användning av icke-Unicode-datatyp kolumn eller variabel för att uppnå.

Sortering SQL Server-databasmotorn för att lagra och använda definitionen av karaktär och Unicode-data. Men när uppgifterna flyttade in ansökan efter ansökan om sortering och jämföra tecken som valts ut av datorstyrning av Windows nationella inställningar. Programmet använder teckendata sammanställning från Windows Nationella inställningar kontroll en av de Nationella inställningar definierar också andra projekt, såsom siffror, tid, datum och valuta format. För Microsoft Windows NT? 4,0, Microsoft Windows? 98 och Microsoft Windows 95, kan använda kontrollpanelen "Nationella inställningar" ansökan anges Windows nationella inställningar. För Microsoft Windows 2000, använd "Kontrollpanelen" i "Nationella inställningar" ansökan angivna platsen. I Windows nationella inställningar för mer information, se Microsofts webbplats MSDN? Page utveckla internationella programvara för Windows 95 och Windows NT 4.0.

Antal icke-Unicode sammanställning av uppgifter kan använda samma kod sidan. Till exempel teckentabellen 1251 definierar kyrilliska teckenuppsättning. Flera sortering regler (såsom Cyrillic_General, ukrainska och makedonska) använda koden-sidan. Även om dessa regler är samma sorts uppsättning bitar att företräda den icke-Unicode-tecknet data, men när det handlar ordlistan definitioner, sortering och regler jämförelse tillämpas något olika, och ordlistan definitioner för att avgöra vilket språk eller alfabet regler sortering kopplas till rätt tecken sekvens.

Eftersom SQL Server 2000 Unicode sammanställning kontroll och icke-Unicode sorteringsordning, så det inte kommer att stöta på de icke-Unicode-data till Unicode och anger en annan sammanställning orsakade problemet. I tidigare versioner av SQL Server på koden sidnumret, sorteringsordning och Unicode-tecken sammanställning anges separat. Tidigare versioner av SQL Server stöder också ett annat nummer för varje nummer sida sorteringsordningen samt att föreskriva vissa teckentabeller i Windows nationella inställningarna inte sorteringsordningen. I SQL Server 7.0, kan du även ange de uppgifter val för icke-Unicode sorteringsordning än Unicode sorteringsordningen. Detta kommer att leda till användning och icke-Unicode-data släkting Unicode-data, sortering och jämförelse returnera olika resultat.