Moja odpowiedź na to pytanie nie dotyczy korzystania z Maxa, ale dotyczy powodu VARCHAR(max) vs TEXT.
W mojej książce; po pierwsze, chyba że masz absolutną pewność, że nigdy nie zakodujesz niczego poza tekstem w języku angielskim, a ludzie nie będą odwoływać się do nazw obcych lokalizacji, wtedy powinieneś użyć NVARCHAR lub NTEXT.
Po drugie, to właśnie umożliwiają pola.
TEXT jest trudny do zaktualizowania w porównaniu z VARCHAR, ale zyskujesz przewagę indeksowania pełnego tekstu i wielu sprytnych rzeczy.
Z drugiej strony, VARCHAR(MAX) ma pewną niejednoznaczność, jeśli rozmiar komórki wynosi <8000 znaków, będzie traktowany jako dane wiersza. Jeśli jest większa, będzie traktowana jako LOB do celów przechowywania. Ponieważ nie możesz tego wiedzieć bez zapytania RBAR, może to mieć strategie optymalizacji dla miejsc, w których musisz mieć pewność co do swoich danych i ile odczytów to kosztuje.
W przeciwnym razie, jeśli twoje użycie jest stosunkowo przyziemne i nie spodziewasz się problemów z rozmiarem danych (tzn. używasz .Net i dlatego nie musisz martwić się rozmiarem swoich obiektów typu string/char*) wtedy użycie VARCHAR(max) jest w porządku.