varchar(max) to typ pozwalający zachowywać w bazie danych 2^31 bajtów danych. Ponieważ rekordy znajdują się na stronach, a rozmiar strony to 8 KB, to takie dane trzeba przechowywać poza rekordem. W rekordzie zajmuje się jedynie 16 bitów na wskaźnik. Istnieje opcja pozwalająca przechowywać dane typu varchar(max) na stronie z rekordem o ile oczywiście w danej stronie zostało odpowiednio dużo wolnego miejsca.
Polecenie
sp_tableoption N'TestTable', 'large value types out of row', 'ON'
powoduje, że omawiany mechanizm nie działa. Nawet jeżeli do tabeli o strukturze zawierającej kolumnę varchar(max) wstawisz jeden bajt danych, to będzie on umieszczony poza strukturą rekordu, w rekordzie zaś zostanie umieszczony wskaźnik do tej wartości.
Polecenie:
sp_tableoption N'TestTable', 'large value types out of row', 'OFF'
powoduje, że serwer podejmie próbę umieszczenia wartości w rekordzie.
Można sprawdzić, jak jest ustawiona ta opcja dla tabeli odwołując się do widoku sys.tables. Kolumna large_value_types_out_of_row informuje o ustawieniu lub wygaszeniu tej opcji.