Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Mein VARCHAR(MAX)-Feld begrenzt sich selbst auf 4000; was gibt?

Korrigiert...

Die Tabelle kann varchar(max) sein, aber die Werte, die Sie zuweisen, sind nur nvarchar (4000)

Das heißt,

maxcolumn = maxvalues + smallstring1 + **unicodestring** + smallstring3 + smallstring4 ...

Die rechte Seite bleibt bei nvarchar(4000) Maximum wegen Datentypvorrang. nvarchar> varchar. Wenn es der Max-Spalte zugewiesen wird, wird es abgeschnitten

Sie müssen alle Werte rechts bei varchar

sicherstellen

Es ist noch wie ganzzahlige Division ... was mich verwirrte, war die 4000-Grenze, wenn varchar 8000 ist ... dies impliziert irgendwo nvarchar.

Für Nvarchar(Max) erhalte ich nur 4000 Zeichen in TSQL?