Несколько старомодно полагать, что приложение будет передавать только короткие строки в базу данных, и это будет нормально .
В наше время вы ЕСТЬ ожидаете, что к базе данных будет обращаться, главным образом, из текущего приложения, но может существовать будущая версия приложения (будет ли разработчик этой версии знать, чтобы сохранить строки ниже определенной длины?)
Вы ДОЛЖНЫ ожидать, что для доступа к вашей базе данных будут использоваться веб-сервисы, процессы ETL, LYNC to SQL и любое другое количество уже существующих и / или еще не существующих технологий.
Вообще говоря, я стараюсь не переходить на varchar (4000), потому что в конце концов это четыре тысячи символов . Если я превышаю это, то я смотрю на другие типы данных, чтобы сохранить то, что я пытаюсь сохранить. Брент Озар написал несколько замечательных замечательных вещей об этом.
При всем этом важно оценить подход текущего проекта к вашим текущим требованиям, когда вы работаете над проектом. Иметь представление о том, как работают различные части, понять компромиссы различных подходов и решить проблему под рукой. Выполнение некоторой великой аксиомы может привести к слепой приверженности, которая может превратить вас в лемминга .