Я не понимаю приведенную ниже выдержку из nchar
и nvarchar
.
В нем говорится:
nчар [ ( п ) ]
Строковые данные Unicode фиксированной длины. n определяет длину строки и может принимать значения от 1 до 4000. Размер хранилища удваивается по n байт. Когда кодовая страница сопоставления использует двухбайтовые символы, размер хранилища по-прежнему составляет n байтов. В зависимости от строки размер хранилища в n байтов может быть меньше значения, указанного для n. Синонимы ISO для nchar: национальный символ и национальный характер.
Я нахожу некоторые противоречия в приведенных выше утверждениях, например:
См. второе предложение, где говорится, что размер хранилища равен двум n байтам, а в следующем предложении говорится, что размер хранилища по-прежнему равен n байтам. В первом предложении говорится, что он имеет фиксированную длину, а в 4-м предложении говорится, что размер хранилища в n байтов может быть меньше значения, указанного для n.
Заранее спасибо.
NCHAR
— это тип фиксированной длины — он всегда будет использовать столько символов, сколько определено; аNCHAR
— это тип Unicode, что означает 2 байта на символ. Таким образом,NCHAR(20)
всегда будет занимать 40 байт. - person marc_s   schedule 24.03.2015