Максимум. емкость составляет 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 символ Unicode меньше, чем Я утверждал раньше.
VARCHAR(MAX)
, если вам не нужна двухбайтовая поддержка азиатских, арабских или кириллических языков. Используйте,(N)VARCHAR(x)
если вы знаете, что строка никогда не будет длиннее x символов (не используйтеNVARCHAR(MAX)
для имени - используйтеNVARCHAR(50)
или что-то еще, что имеет для вас смысл)Из char и varchar (Transact-SQL)
источник
2 ^ 31-1 байт. Итак, чуть меньше 2 ^ 31-1 символов для varchar (max) и половина - для nvarchar (max).
nchar и nvarchar
источник