2009-11-19 4 views

Odpowiedz

49

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

VARCHAR [(N | max)] o zmiennej długości, nie Unicode danych znakowych . n może wynosić od 1 do 8 000. max oznacza, że ​​maksymalny rozmiar pamięci wynosi 2^31-1 bajtów. Rozmiar pamięci to rzeczywista długość wprowadzonych danych: + 2 bajty. Wprowadzone dane mogą mieć długość 0 znaków. Synonimami ISO dla varchar są char zmienne lub różne.

1 znak = 1 bajt. I nie zapomnij o 2 bajtach na zakończenie. Tak więc, 2^31-3 znaków.

+8

technicznie 1 znak = 1 bajt tylko dla niektórych kodowania znaków. – Amber

+1

Ah true. Ciągi DBCS, na przykład, dawałyby ci mniej. Więc uważaj na to. –

+0

@Dav, tak, to było jednym z moich rozważań. Jednak ze względu na liczbę dostępnych bajtów spełni to moje potrzeby związane z tym scenariuszem. – Russell

7

Zobacz MSDN reference table for maximum numbers/sizes.

bajtów na varchar (max) varbinary (max), xml, tekst lub obraz kolumna: 2^31-1

Jest narzut dwa bajty dla kolumny, tak rzeczywiste dane mają długość 2^31-3 maks. bajtów. Zakładając, że używasz jednobajtowego kodowania znaków, to łącznie 2^31-3 znaków. (Jeśli używasz kodowania znaków, które używa więcej niż jednego bajtu na znak, podziel przez całkowitą liczbę bajtów na znak. Jeśli używasz kodowania znaków o zmiennej długości, wszystkie zakłady są wyłączone.)

7

dla przyszłych czytelników, którzy szybko potrzebują tej odpowiedzi:

2^31-1 = 2.147.483.647 znaków