Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

съпоставяне на sql сървър за многоезични данни

Като за начало ще искате всичките ви колони да бъдат nvarchar . Това ще се погрижи за вашите проблеми със съхранението. Що се отнася до сортирането и филтрирането, сортирането става важно, както казвате.

В зависимост от това какво правите с данните и колко колони трябва да използвате за филтриране и сортиране и как извършвате операциите, един от начините да го направите е с динамичен sql. Можете да направите нещо като

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

Това не е страхотно решение, но работи. Можете също така да хвърлите сортирането след всяко поле в изглед, така че, както споменахте, това е опция. Нещо подобно и след това можете да го направите заявка, без да се налага да указвате сортиране.

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...

След това можете просто да изберете правилния изглед, който да използвате за заявки.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Причина за използване на @@identity вместо scope_identity

  2. Този код предотвратява ли инжектирането на SQL?

  3. Грешка при получаване:Грешка при преобразуването на типа данни nvarchar в числови в SQL

  4. Как да избера клъстерен индекс в SQL Server?

  5. SQL Server Count е бавен