Kenneth Fisher on varchar versus nvarchar:
In any study of Data Types in SQL Server you are going to have to look at the various string data types. One important component is the difference between nChar vs Char and nVarChar vs VarChar. Most people reading this are probably thinking “Well that’s ridiculously easy.” If you are one of them then I want you to read these two facts about these data types.
Char and VarChar nChar and nVarChar Stores ASCII UNICODE Size Always one byte per character. Always two bytes per character. One of these is incorrect. Do you know which one?
The correct answer is “both are wrong.” Then you get into debates about what a “character” is, how certain languages (like Hebrew and Arabic) have layers of modifiers which modify semantic context, etc. etc. Strings are probably even harder than dates.