Conceptos básicos de Unicode
El almacenamiento de datos en varios idiomas dentro de una misma base de datos es difícil de controlar cuando sólo se utilizan datos de tipo carácter y páginas de códigos. También es difícil encontrar una página de códigos para la base de datos que pueda almacenar todos los caracteres específicos de cada idioma. Además, es difícil asegurar la traducción adecuada de los caracteres especiales cuando éstos se leen o se actualizan desde clientes diferentes que utilizan páginas de códigos diferentes. Las bases de datos que admiten clientes internacionales siempre deberían utilizar tipos de datos Unicode en vez de tipos de datos no Unicode.
Por ejemplo, imaginemos que una base de datos de clientes en América del Norte tiene que administrar tres idiomas:
Nombres y direcciones en español para México
Nombres y direcciones en francés para Quebec
Nombres y direcciones en inglés para el resto de Canadá y para EE.UU.
Cuando utilice sólo columnas con caracteres y páginas de códigos, hay que prestar atención para asegurarse de que la base de datos esté instalada con una página de códigos que controle los caracteres de los tres idiomas. También que prestar atención para asegurar la adecuada traducción de los caracteres de uno de los idiomas cuando éstos se lean en clientes que tengan una página de códigos para otro idioma.
Con el crecimiento de Internet, es más importante que nunca la compatibilidad con muchos equipos cliente que ejecuten distintas configuraciones regionales. Sería difícil elegir una página de códigos para los tipos de datos de carácter que admita todos los caracteres que precisa una audiencia mundial.
La forma más fácil de administrar datos de carácter en bases de datos internacionales es utilizar siempre los tipos de datos Unicode nchar, nvarchar y nvarchar(max) en lugar de sus equivalentes no Unicode, char, varchar y text.
Unicode es un estándar que permite asignar puntos de código con caracteres. Puesto que se ha diseñado para cubrir todos los caracteres de todos los idiomas del mundo, no es preciso usar páginas de códigos diferentes para controlar los distintos juegos de caracteres. SQL Server admite el estándar Unicode versión 3.2.
Si todas las aplicaciones que trabajan con bases de datos internacionales utilizan también variables Unicode en vez de variables no Unicode, no se tienen que realizar traducciones de caracteres en el sistema. Los clientes verán los mismos caracteres en los datos que el resto de clientes.
SQL Server almacena todos los datos de catálogo del sistema de texto en columnas cuyo tipo de datos es Unicode.Los nombres de los objetos de la base de datos, como tablas, vistas y procedimientos almacenados, se almacenan en columnas Unicode. Esto permite desarrollar aplicaciones utilizando solamente Unicode, lo que ayuda a evitar las complicaciones de conversión entre páginas de códigos.