Quelle est la différence entre varchar et nvarchar ?
Une colonne nvarchar peut stocker n’importe quelle donnée Unicode. Une colonne varchar est limitée à une page de codes sur 8 bits. Certaines personnes pensent que varchar devrait être utilisé parce qu’il occupe moins d’espace. Je pense que ce n’est pas la bonne réponse. Les incompatibilités de pages de codes sont pénibles, et l’Unicode est le remède aux problèmes de pages de codes. Avec le faible coût du disque et de la mémoire de nos jours, il n’y a vraiment aucune raison de perdre du temps à s’embêter avec les pages de codes.
Tous les systèmes d’exploitation et plateformes de développement modernes utilisent l’Unicode en interne. En utilisant nvarchar plutôt que varchar, vous pouvez éviter les conversions d’encodage à chaque lecture ou écriture dans la base de données. Les conversions prennent du temps et sont sujettes aux erreurs. Et la récupération après des erreurs de conversion est un problème non trivial.
Si vous interfacez avec une application qui utilise uniquement l’ASCII, je recommanderais tout de même d’utiliser l’Unicode dans la base de données. Les algorithmes de classement du système d’exploitation et de la base de données fonctionneront mieux avec l’Unicode. L’Unicode évite les problèmes de conversion lors de l’interfaçage avec d’autres systèmes. Et vous vous préparerez pour l’avenir. Et vous pouvez toujours valider que vos données sont limitées à l’ASCII 7 bits pour tout système hérité que vous devez maintenir, tout en profitant de certains avantages du stockage Unicode complet.