varchar [ ( n | max ) ]
Variable-length, non-Unicode string data. n defines the string length and can be a value from 1 through 8,000. max indicates that the maximum storage size is 2^31-1 bytes (2 GB). The storage size is the actual length of the data entered + 2 bytes. The ISO synonyms for varchar are char varying or character varying.
So X in
varchar(X)
specifies the maximum length of the string that can be entered into the field; but it does not mean that X amount of space is always allocated per record. Only the space needed to store the string placed in the field is allocated.
In your case if you are storing more than 8000 characters use
varchar(max)
.