Antworten:
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 (nicht NVARCHAR(MAX)
für einen Vornamen verwenden - verwenden NVARCHAR(50)
oder was auch immer für Sie sinnvoll ist)
Von char und varchar (Transact-SQL)
varchar [(n | max)]
Nicht-Unicode-Zeichendaten mit variabler Länge. n kann ein Wert von 1 bis 8.000 sein. max gibt an, dass die maximale Speichergröße 2 ^ 31-1 Byte beträgt. Die Speichergröße ist die tatsächliche Länge der eingegebenen Daten + 2 Bytes. Die eingegebenen Daten können 0 Zeichen lang sein. Die ISO-Synonyme für varchar sind char variierend oder zeichenvariierend.
2 ^ 31-1 Bytes. Also etwas weniger als 2 ^ 31-1 Zeichen für varchar (max) und die Hälfte für nvarchar (max).