Какой SQL Server аналог сопоставления Unicode_ci в MySQL? - PullRequest
7 голосов
/ 20 февраля 2011

Насколько я понимаю, в MySQL сопоставления unicode_ci (в частности, utf8_unicode_ci) предназначены для поддержки всех символов независимо от локали.

Мне нужно добиться того же с SQL Server 2008 R2.Моя база данных будет содержать данные на самых разных языках (не ограничиваясь латинскими алфавитами).Я не собираюсь использовать не-Unicode строки вообще.Какой порядок сортировки выбрать?

1 Ответ

7 голосов
/ 20 февраля 2011

Вы могли бы также пойти с Latin1_General_CI_AI

Причина в том, что данные Unicode хранятся с использованием полей NVarchar, SQL Server более гибок в том, что он может смешивать данные Varchar (1 байт) и NVarchar (2 байта). Таким образом, для соответствия UTF8, может подойти любое сопоставление . Что касается CI - каждое сопоставление в 2008 году допускает добавление спецификации CI (это флажок в пользовательском интерфейсе «чувствителен к регистру» - не отмечен для нечувствительного).

Последний бит и некоторые другие, такие как ширина, - это просто дополнительная настройка на SQL Server.

Точка № 2 из http://forums.mysql.com/read.php?103,187048,188748

utf8_unicode_ci подходит для всех этих языков: Русский, болгарский, белорусский, македонский, сербский и украинский.

Если вам требуется сортировка для определенного языка, где языки по-разному обрабатывают акценты, вам нужен определенный порядок словаря - см. Здесь http://msdn.microsoft.com/en-us/library/ms144250.aspx. В противном случае Latin1_General основан на латинице-США

...