An
nvarchar
column can
store any Unicode data. A varchar
column is restricted to an 8-bit
codepage. Some people think that varchar
should be used because it takes
up less space. I believe this is not the correct answer. Codepage
incompatabilities are a pain, and Unicode is the cure for codepage problems.
With cheap disk and memory nowadays, there is really no reason to waste time mucking
around with code pages anymore.
All modern operating systems and development
platforms use Unicode internally. By using
nvarchar
rather than varchar
, you can avoid doing
encoding conversions every time you read from or write to the database.
Conversions take time, and are prone to errors. And recovery from conversion
errors is a non-trivial problem.
If you are interfacing with an application
that uses only ASCII, I would still recommend using Unicode in the database.
The OS and database collation algorithms will work better with Unicode. Unicode
avoids conversion problems when interfacing with other systems.
And you will be preparing for the future. And you can always validate that your
data is restricted to 7-bit ASCII for whatever legacy system you're having to
maintain, even while enjoying some of the benefits of full Unicode storage.
No comments:
Post a Comment