nvarchar(max)
é realmente um tipo de dados diferente de nvarchar(integer-length)
. Suas características são mais parecidas com o obsoleto text
tipo de dados. Se
nvarchar(max)
o valor se torna muito grande, como text
, ele será armazenado fora a linha (uma linha é restrita a 8.000 bytes no máximo) e um ponteiro para ela é armazenado na própria linha. Você não pode indexar com eficiência um campo tão grande e o fato de que os dados podem ser armazenados em outro lugar complica ainda mais a pesquisa e a verificação do índice.Uma restrição exclusiva exige que um índice seja aplicado e, como resultado, os designers do SQL Server decidiram não permitir criando uma restrição única sobre ele.