sql >> Databasteknik >  >> RDS >> Sqlserver

Varför kan jag inte sätta en begränsning på nvarchar(max)?

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.



  1. DATEFROMPARTS() Exempel i SQL Server (T-SQL)

  2. MySQL InnoDB VÄLJ...LIMIT 1 FÖR UPPDATERING Vs UPPDATERING ... BEGRÄNSNING 1

  3. Det enklaste sättet att migrera ett Django-projekt från MySQL till PostgreSQL

  4. Hämta data med Jquery, AJAX och PHP från en MySQL-databas