Respostas:
Máx. a capacidade é de 2 gigabytes de espaço - então você está olhando para pouco mais de 1 bilhão de caracteres de 2 bytes que cabem em um NVARCHAR(MAX)campo.
Usando os números mais detalhados da outra resposta, você deve ser capaz de armazenar
(2 ^ 31 - 1 - 2) / 2 = 1'073'741'822 double-byte characters
1 billion, 73 million, 741 thousand and 822 characters to be precise
em sua NVARCHAR(MAX)coluna (infelizmente, a última metade do caractere foi perdida ...)
Atualização: como @MartinMulder apontou: qualquer coluna de caracteres de comprimento variável também tem uma sobrecarga de 2 bytes para armazenar o comprimento real - então eu precisei subtrair mais dois bytes do 2 ^ 31 - 1comprimento que eu estipulei anteriormente - assim você pode armazenar 1 caractere Unicode menor que Eu havia reivindicado antes.
VARCHAR(MAX), se não precisar do suporte de 2 bytes para idiomas asiáticos, árabes ou cirílicos. Use (N)VARCHAR(x)se você souber que uma string nunca terá mais do que x caracteres (não use NVARCHAR(MAX)como primeiro nome - use NVARCHAR(50)ou o que quer que faça sentido para você)
De char e varchar (Transact-SQL)
varchar [(n | max)]
Dados de caracteres não Unicode de comprimento variável. n pode ser um valor de 1 a 8.000. max indica que o tamanho máximo de armazenamento é 2 ^ 31-1 bytes. O tamanho do armazenamento é o comprimento real dos dados inseridos + 2 bytes. Os dados inseridos podem ter 0 caracteres de comprimento. Os sinônimos ISO para varchar são char variando ou caractere variando.
2 ^ 31-1 bytes. Portanto, um pouco menos de 2 ^ 31-1 caracteres para varchar (max) e metade disso para nvarchar (max).