Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

sql server collation untuk data multi bahasa

Sebagai permulaan, Anda ingin semua kolom Anda menjadi nvarchar . Itu akan mengatasi masalah penyimpanan Anda. Sedangkan untuk pengurutan dan penyaringan, maka susunan menjadi penting seperti yang Anda katakan.

Bergantung pada apa yang Anda lakukan dengan data dan berapa banyak kolom yang perlu Anda gunakan untuk memfilter dan menyortir dan bagaimana Anda melakukan operasi, salah satu cara untuk melakukannya adalah dengan sql dinamis. Anda dapat melakukan sesuatu seperti

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

Itu bukan solusi yang bagus, tetapi berhasil. Anda juga dapat membuang susunan setelah bidang apa pun dalam tampilan, jadi seperti yang Anda sebutkan, itu adalah opsi. Sesuatu seperti ini, lalu Anda dapat menanyakannya tanpa harus menentukan susunan.

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

Kemudian Anda bisa menggunakan hanya memilih tampilan yang tepat untuk digunakan untuk kueri.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah Inner Join mengecualikan duplikat?

  2. SQL Server :UPDATE MyTable SET col1 =nilai, col2 =col1

  3. Gabungkan beberapa file SQL menjadi satu file SQL

  4. Hubungan sql kunci utama komposit

  5. Pilih TANGGAL menit dengan query SQL Server 2008