Regarding SQL Server, I understand :
var means the memory is lazy allocated, meaning it fits to the data exactly (on insertion).
var
Look here for a good answer:
Should I use varchar(n) or varchar(MAX)?
The short answer is that from a storage perspective it's the same, but from a query optimization perspective, it's better to use varchar(N).