Выбор правильных параметров сортировки SQL Server для хранения

Как сопоставление влияет на хранилище SQL Server и как это влияет на типы данных Unicode и не-unicode?

  • Влияет ли сопоставление на хранилище Unicode? или просто управлять правилами сортировки в базе данных?

  • Когда я использую типы данных, отличные от Unicode, какие ограничения связаны с сопоставлением?

  • Если применяются ограничения, что происходит, когда я пытаюсь сохранить символ, не входящий в систему сортировки базы данных, с типом данных, отличным от Unicode?

Я понимаю, что тип данных Unicode всегда может хранить полный набор данных Unicode, в то время как возможности хранения типов данных, отличных от Unicode, зависят от кодовой страницы (которая определяется сопоставлением) и может представлять только ряд общих символов в этом сопоставление.

Очевидно, что каждый символ в типе данных Unicode будет занимать как минимум 2 байта, в то время как типы данных, отличные от Unicode, занимают 1 байт на символ (или это также зависит от сопоставления?)

Задайте мне вопрос, как именно это работает?


person John Leidegren    schedule 01.12.2009    source источник


Ответы (1)


SQL Server хранит данные Unicode (NTEXT, NVARCHAR) в UCS2, что всегда дает 2 байта на символ.

Сопоставление влияет только на сортировку (и регистр).

В типах данных, отличных от Unicode (TEXT, VARCHAR), для каждого символа используется только один байт, и могут быть сохранены только символы кодовой страницы сопоставления (как вы указали). См. Эту статью MSDN о сопоставлениях

person devio    schedule 01.12.2009