La mia risposta a questa domanda non riguarda l'utilizzo di Max, quanto il motivo di VARCHAR(max) vs TEXT.
Nel mio libro; prima di tutto, a meno che tu non possa essere assolutamente certo che non codificherai mai altro che testo in inglese e le persone non faranno riferimento a nomi di località straniere, allora dovresti usare NVARCHAR o NTEXT.
In secondo luogo, è ciò che i campi ti consentono di fare.
TEXT è difficile da aggiornare rispetto a VARCHAR, ma ottieni il vantaggio dell'indicizzazione del testo completo e di molte cose intelligenti.
D'altra parte, VARCHAR(MAX) presenta alcune ambiguità, se la dimensione della cella è <8000 caratteri, verrà trattata come dati di riga. Se è maggiore, verrà trattato come una LOB per scopi di archiviazione. Poiché non puoi saperlo senza interrogare RBAR, questo potrebbe avere strategie di ottimizzazione per i luoghi in cui devi essere sicuro dei tuoi dati e di quante letture costano.
Altrimenti, se il tuo utilizzo è relativamente banale e non ti aspetti di avere problemi con la dimensione dei dati (IE stai usando .Net e quindi non devi preoccuparti della dimensione dei tuoi oggetti string/char*) quindi usare VARCHAR(max) va bene.