nvarchar(max)
är verkligen en annan datatyp än nvarchar(integer-length)
. Dess egenskaper är mer som den föråldrade text
data typ.
Om nvarchar(max)
värdet blir för stort, som text
, kommer den att lagras utanför raden (en rad är begränsad till maximalt 8000 byte) och en pekare till den lagras i själva raden. Du kan inte effektivt indexera ett så stort fält och det faktum att data kan lagras någon annanstans komplicerar ytterligare sökning och genomsökning av indexet.
En unik begränsning kräver att ett index upprätthålls och som ett resultat beslutade SQL Server-designers att inte tillåta skapa en unik begränsning för den.