nvarchar(max)
наистина е различен тип данни от nvarchar(integer-length)
. Характеристиките му приличат повече на остарелия text
тип данни.
Ако nvarchar(max)
стойността става твърде голяма, като text
, ще се съхранява отнавън реда (един ред е ограничен до максимум 8000 байта) и указател към него се съхранява в самия ред. Не можете ефективно да индексирате толкова голямо поле и фактът, че данните могат да се съхраняват някъде другаде, допълнително усложнява търсенето и сканирането на индекса.
Уникалното ограничение изисква налагане на индекс и в резултат на това дизайнерите на SQL Server решиха да забранят създаване на уникално ограничение върху него.