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.