Да, максимальная длина столбца varchar (max) или nvarchar (max) не ограничена.Предел хранения составляет 2 ГБ (2 ^ 31 -1 байт).Он ведет себя как обычный столбец varchar / nvarchar, если данные меньше 8 КБ.Затем, когда данные для отдельной строки превышают 8 КБ, они сохраняются как значение text / ntext большого объекта.Вы можете думать об этом как обертка для двух типов данных.
Однако максимальная длина символа не равна 2000000000
.Это 2147483645 для столбца varchar (max) и 1073741822 для столбца nvarchar (max).Это связано с тем, что nvarchar имеет 2 байта на символ, а varchar - 1 байт на символ, а для хранения длины данных переменного столбца требуется 2 байта.
Я не думаю, что какие-либо дополнительные метаданные вычитаются из ограничения в 2 ГБ, но я прокомментирую завтра, если найду что-нибудь еще.