nvarchar(max)
to naprawdę inny typ danych niż nvarchar(integer-length)
. Jego cechy bardziej przypominają przestarzały text
typ danych.
Jeśli nvarchar(max)
wartość staje się zbyt duża, jak text
, będzie przechowywany na zewnątrz wiersz (wiersz jest ograniczony do maksymalnie 8000 bajtów), a wskaźnik do niego jest przechowywany w samym wierszu. Nie można wydajnie indeksować tak dużego pola, a fakt, że dane mogą być przechowywane gdzie indziej, dodatkowo komplikuje wyszukiwanie i skanowanie indeksu.
Unikalne ograniczenie wymaga wymuszenia indeksu, w wyniku czego projektanci SQL Server zdecydowali się zabronić tworząc na nim unikalne ograniczenie.