Juste pour éclaircir... ou résumer...
ncharetnvarcharpeut stocker Unicode caractères.charetvarcharne peut pas stocker Unicode caractères.charetncharsont de longueur fixe qui réservera de l'espace de stockage pour le nombre de caractères que vous spécifiez même si vous n'utilisez pas tout cet espace.varcharetnvarcharsont de longueur variable qui n'utilisera que des espaces pour les caractères que vous stockez. Il ne réservera pas de stockage commecharounchar.
nchar et nvarchar occupera deux fois plus d'espace de stockage, il peut donc être judicieux de ne les utiliser que si vous avez besoin d'Unicode soutien.