Какое максимальное количество символов будет содержать nvarchar (MAX)? - PullRequest
99 голосов
/ 24 ноября 2010

Я новичок в концепции nvarchar(MAX).Сколько символов он будет содержать?

Ответы [ 3 ]

153 голосов
/ 24 ноября 2010

Макс.Емкость составляет 2 гигабайта пространства - так что вы смотрите на чуть более 1 миллиарда 2-байтовых символов, которые поместятся в поле NVARCHAR(MAX).

Используя более подробные цифры другого ответа, вы сможетесохранить

(2 ^ 31 - 1 - 2) / 2 = 1'073'741'822 double-byte characters

1 billion, 73 million, 741 thousand and 822 characters to be precise

в столбце NVARCHAR(MAX) (к сожалению, последняя половина символа потрачена впустую ...)

Обновление: , как указал @MartinMulder: любойСтолбец символов переменной длины также содержит 2 байта для хранения фактической длины - поэтому мне нужно было вычесть еще два байта из длины 2 ^ 31 - 1, которую я предварительно обговорил, - таким образом, вы можете хранить на 1 символ Юникода меньше, чем я требовал ранее.

11 голосов
/ 24 ноября 2010

С char и varchar (Transact-SQL)

varchar [(n | max)]

Переменная длина, не Unicode символ данные. n может быть значением от 1 до 8000. макс означает, что максимальный размер хранилища составляет 2 ^ 31-1 байт. Размер хранилища - это фактическая длина введенных данных + 2 байта. Данные ввод может быть 0 символов в длину. Синонимы ISO для varchar являются символами изменяющийся или изменяющийся характер.

4 голосов
/ 24 ноября 2010

2 ^ 31-1 байт.Таким образом, чуть меньше 2 ^ 31-1 символов для varchar (max) и вдвое меньше для nvarchar (max).

nchar и nvarchar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...