Тип данных SQL Varchar (макс.) По сравнению с Varchar (8000)

Что я понимаю: если я определю столбец с помощью Varchar (100), а затем сохраню только 40 байтов, тогда SQL выделит только 40 байтов для этой ячейки. Что я хочу знать: теперь, если я определю все свои ячейки как Varchar (8000), тогда в чем проблема? Зачем мне вообще использовать Varchar (100) или Varchar (что-то еще, кроме 8000)?

Кроме того, почему бы просто не использовать Varchar (max) вместо varchar (8000), поскольку я понимаю, что 8000 - это максимальное значение.


person Alok Singh    schedule 29.07.2016    source источник
comment
8000 - это не максимальное значение. С MAX при достижении 8000 он сохраняется в переполнении.   -  person Igor    schedule 29.07.2016
comment
@Vercelli Я получил именно то, что хотел. Игорь - Это тоже очень помогает.   -  person Alok Singh    schedule 29.07.2016
comment
Привет, какой сервер SQl вы используете.   -  person Rohit Gupta    schedule 29.07.2016
comment
Есть много-много причин для правильного размера столбцов, а не просто везде покрывать 8000 или максимум. Например, предоставление памяти рассчитывается исходя из предположения, что все столбцы переменной длины заполнены наполовину. Должны ли все в моем районе покупать самосвал, потому что они будут заправлять его раз в 5 лет?   -  person Aaron Bertrand    schedule 29.07.2016
comment
Также посмотрите этот ответ и ссылки: dba.stackexchange.com/questions/140790/   -  person TheGameiswar    schedule 29.07.2016
comment
Взгляните на Какой смысл больше использовать VARCHAR (n)? - дает много хороших замечаний почему не следует просто использовать varchar(max) везде ....   -  person marc_s    schedule 29.07.2016
comment
посмотрите ссылку stackoverflow.com/q/28980502/1805776   -  person vicky    schedule 18.10.2016
comment
varchar (8000) хранит максимум 8000 символов. varchar (max) хранит максимум 2 147 483 647 символов. обратитесь к этому URL-адресу интервьюquestionspdf.com/2015/10/   -  person Laxmi    schedule 19.10.2016