En nvarchar
kolonne kan gemme alle Unicode-data. En varchar
kolonne er begrænset til en 8-bit tegntabel. Nogle mennesker tror, at varchar
bør bruges, fordi det fylder mindre. Jeg mener, at dette ikke er det rigtige svar. Inkompatibilitet med tegntabel er en smerte, og Unicode er kuren mod tegntabelproblemer. Med billig disk og hukommelse i dag, er der virkelig ingen grund til at spilde tid på at tude med kodetavler længere.
Alle moderne styresystemer og udviklingsplatforme bruger Unicode internt. Ved at bruge nvarchar
i stedet for varchar
, kan du undgå at lave kodningskonverteringer, hver gang du læser fra eller skriver til databasen. Konverteringer tager tid og er tilbøjelige til fejl. Og genopretning fra konverteringsfejl er et ikke-trivielt problem.
Hvis du bruger en applikation, der kun bruger ASCII, vil jeg stadig anbefale at bruge Unicode i databasen. OS- og databasesorteringsalgoritmerne vil fungere bedre med Unicode. Unicode undgår konverteringsproblemer ved grænseflader med andre systemer. Og du vil forberede dig på fremtiden. Og du kan altid validere, at dine data er begrænset til 7-bit ASCII, uanset hvilket ældre system, du skal vedligeholde, selv mens du nyder nogle af fordelene ved fuld Unicode-lagring.