sql >> Databasteknik >  >> RDS >> Sqlserver

sql-serverkollation för flerspråkig data

Till att börja med vill du att alla dina kolumner ska vara nvarchar . Det kommer att ta hand om dina lagringsproblem. När det gäller sortering och filtrering, då blir sammanställningar viktiga som du säger.

Beroende på vad du gör med data och hur många kolumner du behöver använda för filtrering och sortering och hur du gör operationerna, är ett sätt att göra det med dynamisk sql. Du kan göra något liknande

declare @collation sysname = 'Latin1_General_CI_AS'
declare @cmd nvarchar(max)
set @cmd = 'select * from person order by last_name collate ' + @collation
exec sp_executesql @cmd

Det är ingen bra lösning, men det fungerar. Du kan också kasta sorteringen efter vilket fält som helst i en vy, så som du nämnde, det är ett alternativ. Något liknande detta, och sedan kan du fråga det utan att behöva ange sorteringar.

create view v_Person_RU as
select first_name collate Cyrillic_General_CI_AI, last_name collate Cyrillic_General_CI_AI...

create view v_Person_AR as
select first_name collate Arabic_CI_AI, last_name collate Arabic_CI_AI...

Sedan kan du bara välja rätt vy att använda för sökning.



  1. Användarhänvisningssystem som använder PHP och MySQL

  2. Vad är det bästa sättet att lagra html-kod i mysql?

  3. Bästa sättet att bygga en SMART mySQL &PHP sökmotor?

  4. Visa data från databasen i DropDownList i asp.net MVC3