Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelle est la différence entre varchar et nvarchar ?

Un nvarchar colonne peut stocker toutes les données Unicode. Un varchar La colonne est limitée à une page de code 8 bits. Certaines personnes pensent que varchar doit être utilisé car il prend moins de place. Je crois que ce n'est pas la bonne réponse. Les incompatibilités de page de code sont pénibles et Unicode est le remède aux problèmes de page de code. Avec des disques et de la mémoire bon marché de nos jours, il n'y a vraiment plus aucune raison de perdre du temps avec des pages de codes.

Tous les systèmes d'exploitation et plates-formes de développement modernes utilisent Unicode en interne. En utilisant nvarchar plutôt que varchar , vous pouvez éviter d'effectuer des conversions d'encodage chaque fois que vous lisez ou écrivez dans la base de données. Les conversions prennent du temps et sont sujettes à des erreurs. Et la récupération des erreurs de conversion est un problème non trivial.

Si vous interagissez avec une application qui utilise uniquement ASCII, je recommanderais toujours d'utiliser 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 Unicode. Unicode évite les problèmes de conversion lors de l'interface avec autre systèmes. Et vous préparerez 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 entretenir, même en profitant de certains des avantages du stockage Unicode complet.