Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Por que não posso colocar uma restrição em nvarchar (max)?


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.