sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué no puedo poner una restricción en nvarchar (max)?

nvarchar(max) es realmente un tipo de datos diferente de nvarchar(integer-length) . Sus características son más como el obsoleto text tipo de datos.

Si nvarchar(max) el valor se vuelve demasiado grande, como text , se almacenará fuera la fila (una fila está restringida a un máximo de 8000 bytes) y un puntero a ella se almacena en la fila misma. No puede indexar de manera eficiente un campo tan grande y el hecho de que los datos se pueden almacenar en otro lugar complica aún más la búsqueda y el escaneo del índice.
Una restricción única requiere que se aplique un índice y, como resultado, los diseñadores de SQL Server decidieron no permitir creando una restricción única sobre él.