sql >> Database teknologi >  >> RDS >> Sqlserver

Hvorfor kan jeg ikke sætte en begrænsning på nvarchar(max)?

nvarchar(max) er virkelig en anden datatype end nvarchar(integer-length) . Dets karakteristika ligner mere den forældede text datatype.

Hvis nvarchar(max) værdien bliver for stor, f.eks. text , vil den blive gemt udenfor rækken (en række er begrænset til maksimalt 8000 bytes) og en pointer til den gemmes i selve rækken. Du kan ikke effektivt indeksere et så stort felt, og det faktum, at data kan lagres et andet sted, komplicerer yderligere søgning og scanning af indekset.
En unik begrænsning kræver, at et indeks håndhæves, og som et resultat besluttede SQL Server-designere at nægte at tillade skabe en unik begrænsning på det.



  1. Hvordan indstilles et AUTO_INCREMENT-felt til at starte med værdien 6000 i mysql?

  2. Hvad betyder <> i Oracle

  3. Hvorfor er der behov for UDFØR STRAKS her?

  4. Ville singleton være et godt designmønster for et mikroblogging-websted?