Bad idea when you know the field will be in a set range- 5 to 10 character for example. I think I'd only use max if I wasn't sure what the length would be. For example a telephone number would never be more than a certain number of characters.
Can you honestly say you are that uncertain about the approximate length requirements for every field in your table?
I do get your point though- there are some fields I'd certainly consider using varchar(max).
Interestingly the [MSDN docs][1] sum it up pretty well:
> Use varchar when the sizes of the
> column data entries vary considerably.
> Use varchar(max) when the sizes of the
> column data entries vary considerably,
> and the size might exceed 8,000 bytes.
There's [an interesting discussion on the issue here][2].
[1]:
[To see links please register here]
[2]:
[To see links please register here]