nvarchar
колоната може да съхранява всякакви Unicode данни. varchar
колоната е ограничена до 8-битова кодова страница. Някои хора смятат, че varchar
трябва да се използва, защото заема по-малко място. Вярвам, че това не е правилният отговор. Несъвместимостта на кодовите страници е болка, а Unicode е лек за проблеми с кодовите страници. С евтините дискове и памет в днешно време, наистина няма причина да губите време да се занимавате с кодови страници.
Всички съвременни операционни системи и платформи за разработка използват вътрешно Unicode. С помощта на nvarchar
вместо varchar
, можете да избегнете извършването на преобразувания на кодиране всеки път, когато четете или пишете в базата данни. Преобразуванията отнемат време и са предразположени към грешки. А възстановяването от грешки при преобразуване е нетривиален проблем.
Ако взаимодействате с приложение, което използва само ASCII, все пак бих препоръчал използването на Unicode в базата данни. Алгоритмите за съпоставяне на ОС и база данни ще работят по-добре с Unicode. Unicode избягва проблеми с конвертирането при взаимодействие с други системи. И ще се подготвите за бъдещето. И винаги можете да потвърдите, че вашите данни са ограничени до 7-битов ASCII за каквато и наследена система, която трябва да поддържате, дори докато се наслаждавате на някои от предимствата на пълното съхранение на Unicode.