Сопоставление SQL-сервера

В книге, которую я читаю, говорится это

Поддержка SQL Server два вида символьных типов данных — постоянный клиент и Unicode. Регулярные типы данных включают CHAR и VARCHAR, и типы данных Unicode включают NCHAR и NVARCHAR. Различие - то, что регулярные символы используют один байт устройства хранения данных для каждого символа, в то время как символы Unicode требуют двух байтов за символ. С одним байтом устройства хранения данных на символ выбор регулярного типа символов для столбца ограничивает Вас только одним языком в дополнение к английскому языку, потому что только 256 (2^8) различные символы могут быть представлены единственным байтом.

То, что я узнал этим, если я использую Varchar затем, я могу использовать только один язык (Для напр. Хинди, индийский Язык) наряду с английским языком.
Но Когда я выполняю это

Create Table NameTable
(
    NameColumn varchar(MAX) COLLATE Indic_General_90_CI_AS_KS
)

Это показывает мне, ошибка "Сопоставление 'Indic_General_90_CI_AS_KS' поддерживается на типах данных Unicode только и не может быть применена для обугливания, varchar или типы данных text".

Таким образом, где я неправильно понял автора?
Спасибо

8
задан Akshay J 22 February 2010 в 11:09
поделиться

2 ответа

Вы можете найти список коллизий здесь, вместе с типом кодировки


Некоторые коллизии применяются только к 1-байтовым кодировкам - 127 бит используются для обычного ASCII и 128 доступны для других символов - хинди, вероятно, не помещается в 128 символов, поэтому 1-байтовая коллизия к нему не применима.

Вам придется использовать nvarchar (или другой тип символов с префиксом 'n').

-- редактировать --

French_CI_AS как неанглийский пример

Одна из вещей, которые позволяют использовать коллизии - это упорядочивание символов в зависимости от языка и локали. Поэтому French != latin.

Другой пример Arabic_CI_AS

Это 1-байтовая кодировка с арабским алфавитом.

3
ответ дан 5 December 2019 в 21:18
поделиться

вы можете использовать это

name = N'مرحبا كيف حالك'
1
ответ дан 5 December 2019 в 21:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: