Същият въпрос беше зададен във форумите на MSDN:
- Varchar(max) срещу Varchar(255)
От оригиналната публикация (много повече информация там):
Когато съхранявате данни в колона VARCHAR(N), стойностите се съхраняват физически по същия начин. Но когато го съхранявате в колона VARCHAR(MAX), зад екрана данните се обработват като стойност TEXT. Така че е необходима допълнителна обработка, когато се работи със стойност VARCHAR(MAX). (само ако размерът надвишава 8000)
VARCHAR(MAX) или NVARCHAR(MAX) се счита за „тип с голяма стойност“. Типовете с големи стойности обикновено се съхраняват „извън реда“. Това означава, че редът с данни ще има указател към друго място, където се съхранява "голямата стойност"...