¿Cuál es el máximo de caracteres para NVARCHAR (MAX)?

He declarado una columna de tipo NVARCHAR(MAX) en SQL Server 2008, ¿cuáles serían sus caracteres máximos exactos con el MAX como longitud?

El tamaño máximo para una columna de tipo NVARCHAR(MAX) es de 2 GByte de almacenamiento.

Como NVARCHAR utiliza 2 bytes por carácter, eso es aprox. Mil millones de caracteres

La guerra y la paz de Leo Tolstoj es un libro de 1’440 páginas, que contiene alrededor de 600,000 palabras, por lo que podrían ser 6 millones de caracteres, bien redondeado. Por lo tanto, podría incluir aproximadamente 166 copias de todo el libro War and Peace en cada columna NVARCHAR(MAX) .

¿Es suficiente espacio para tus necesidades? 🙂

Por defecto, los valores de nvarchar (MAX) se almacenan exactamente igual que los valores de nvarchar (4000), a menos que la longitud real supere los 4000 caracteres; en ese caso, los datos en filas se reemplazan por un puntero a una o más páginas separadas donde se almacenan los datos.

Si anticipa datos que posiblemente excedan los 4000 caracteres, nvarchar (MAX) es definitivamente la opción recomendada.

Fuente: https://social.msdn.microsoft.com/Forums/en-US/databasedesign/thread/d5e0c6e5-8e44-4ad5-9591-20dc0ac7a870/

Creo que en realidad nvarchar (MAX) puede almacenar aproximadamente 1070000000 caracteres.

De la documentación de MSDN

nvarchar [(n | max )]

Datos de cadena Unicode de longitud variable. n define la longitud de la cadena y puede ser un valor de 1 a 4.000. max indica que el tamaño máximo de almacenamiento es 2 ^ 31-1 bytes (2 GB). El tamaño de almacenamiento, en bytes, es dos veces la longitud real de los datos ingresados ​​+ 2 bytes