varchar uses the database character set to store theYep.
data, where as nvarchar uses the national character
set to store the data.
varchar can have max 2000 length same as nvarchar.That's contradicting your first sentence above. varchar will use whatever encoding the DB charset specifies, which can be multi-bytes.
but difference is varchar is single byte representation.
so it will have 2000 bytes. where asAgain this is incorrect IMHO. Sure, nchar or nvarchar will take 2 bytes per character if you use UTF-16 as the DB national charset (ignoring surrogate pairs for chars beyond the BMP...), but you can use any encoding for nchar and co, you choose, and it's not necessarily UTF-16.
we can give 2000 as length for nvarchar. but it will
have 4000 bytes (because each character takes two bytes).