Respuestas:
Max. la capacidad es de 2 gigabytes de espacio, por lo que está viendo poco más de mil millones de caracteres de 2 bytes que caben en un NVARCHAR(MAX)
campo.
Usando los números más detallados de la otra respuesta, debería poder almacenar
(2 ^ 31 - 1 - 2) / 2 = 1'073'741'822 double-byte characters
1 billion, 73 million, 741 thousand and 822 characters to be precise
en su NVARCHAR(MAX)
columna (desafortunadamente, ese último medio carácter se desperdicia ...)
Actualización: como señaló @MartinMulder: cualquier columna de caracteres de longitud variable también tiene una sobrecarga de 2 bytes para almacenar la longitud real, por lo que necesitaba restar dos bytes más de la 2 ^ 31 - 1
longitud que había estipulado anteriormente, por lo que puede almacenar 1 carácter Unicode menos de Lo había reclamado antes.
VARCHAR(MAX)
, si no necesita el soporte de 2 bytes para idiomas asiáticos, árabes o cirílicos. Uso (N)VARCHAR(x)
si sabes una cadena nunca será más largo que caracteres x (no utilizar NVARCHAR(MAX)
un nombre - el uso NVARCHAR(50)
o lo que tenga sentido para usted)
De char y varchar (Transact-SQL)
varchar [(n | max)]
Datos de caracteres no Unicode de longitud variable. n puede ser un valor de 1 a 8.000. max indica que el tamaño máximo de almacenamiento es 2 ^ 31-1 bytes. El tamaño de almacenamiento es la longitud real de los datos ingresados + 2 bytes. Los datos ingresados pueden tener 0 caracteres de longitud. Los sinónimos ISO para varchar varían según el carácter o el carácter.
2 ^ 31-1 bytes. Entonces, un poco menos de 2 ^ 31-1 caracteres para varchar (max) y la mitad para nvarchar (max).