Ile znaków może zawierać pole bazy danych SQL Server 2008, gdy typem danych jest VARCHAR (MAX)?Ile znaków w varchar (max)
Odpowiedz
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.
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.)
dla przyszłych czytelników, którzy szybko potrzebują tej odpowiedzi:
2^31-1 = 2.147.483.647 znaków
technicznie 1 znak = 1 bajt tylko dla niektórych kodowania znaków. – Amber
Ah true. Ciągi DBCS, na przykład, dawałyby ci mniej. Więc uważaj na to. –
@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