Max. Die Kapazität beträgt 2 Gigabyte Speicherplatz. Sie sehen also etwas mehr als 1 Milliarde 2-Byte-Zeichen, die in ein NVARCHAR(MAX)
Feld passen .
Wenn Sie die detaillierteren Zahlen der anderen Antwort verwenden, sollten Sie in der Lage sein, diese zu speichern
(2 ^ 31 - 1 - 2) / 2 = 1'073'741'822 double-byte characters
1 billion, 73 million, 741 thousand and 822 characters to be precise
in Ihrer NVARCHAR(MAX)
Spalte (leider ist das letzte halbe Zeichen verschwendet ...)
Update: Wie @MartinMulder hervorhob: Jede Zeichenspalte mit variabler Länge hat auch einen Overhead von 2 Byte zum Speichern der tatsächlichen Länge. Daher musste ich zwei weitere Bytes von der 2 ^ 31 - 1
zuvor festgelegten Länge abziehen. Sie können also 1 Unicode-Zeichen kleiner als speichern Ich hatte vorher behauptet.
VARCHAR(MAX)
Sie diese Option , wenn Sie die 2-Byte-Unterstützung für asiatische, arabische oder kyrillische Sprachen nicht benötigen. Verwenden(N)VARCHAR(x)
Sie diese Option, wenn Sie wissen, dass eine Zeichenfolge niemals länger als x Zeichen sein wird (nichtNVARCHAR(MAX)
für einen Vornamen verwenden - verwendenNVARCHAR(50)
oder was auch immer für Sie sinnvoll ist)Von char und varchar (Transact-SQL)
quelle
2 ^ 31-1 Bytes. Also etwas weniger als 2 ^ 31-1 Zeichen für varchar (max) und die Hälfte für nvarchar (max).
nchar und nvarchar
quelle