Выбор правильной сортировки SQL Server для хранения - PullRequest
4 голосов
/ 01 декабря 2009

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

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

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

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

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

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

Установите меня прямо здесь, как это работает точно?

1 Ответ

6 голосов
/ 01 декабря 2009

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

Параметры сортировки влияют только на сортировку (и оболочку).

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

...