2009-11-19 10 views

Antwort

49

Von http://msdn.microsoft.com/en-us/library/ms176089.aspx

varchar [(n | max)] mit variabler Länge, Nicht-Unicode-Zeichen Daten. n kann ein Wert von 1 bis 8.000 sein. max gibt an, dass die maximale Speichergröße 2^31-1 Byte ist. Die Speichergröße ist die tatsächliche Länge von Daten eingegeben + 2 Bytes. Die eingegebenen Daten können 0 Zeichen lang sein. Die ISO-Synonyme für Varchar sind char variierende oder Zeichenvariable.

1 Zeichen = 1 Byte. Und vergiss 2 Bytes für die Terminierung nicht. Also, 2^31-3 Zeichen.

+8

Technisch 1 Zeichen = 1 Byte nur für bestimmte Zeichenkodierungen. – Amber

+1

Ah stimmt. DBCS-Zeichenfolgen würden z. B. weniger geben. Also pass auf das auf. –

+0

@Dav, ja, das war eine meiner Überlegungen. Aufgrund der Anzahl der verfügbaren Bytes entspricht dies jedoch meinen Anforderungen für dieses Szenario. – Russell

7

Siehe MSDN reference table for maximum numbers/sizes.

Bytes pro VARCHAR (max), varbinary (max), XML, Text oder Bild Säule: 2^31-1

Es gibt einen Zwei-Byte-Overhead für die Spalte, so Die tatsächlichen Daten sind 2^31-3 max Bytes in der Länge. Angenommen, Sie verwenden eine Ein-Byte-Zeichencodierung, also insgesamt 2^31-3 Zeichen. (Wenn Sie eine Zeichenkodierung verwenden, die mehr als ein Byte pro Zeichen verwendet, dividieren Sie die Gesamtzahl der Bytes pro Zeichen. Wenn Sie eine Zeichencodierung mit variabler Länge verwenden, sind alle Wetten deaktiviert.)

7

für zukünftige Leser, die diese Antwort schnell benötigen:

2^31-1 = 2.147.483.647 Zeichen