Caracteres complementarios

Actualizado: 12 de diciembre de 2006

SQL Server 2005 utiliza un esquema de codificación UCS-2 para codificar caracteres Unicode en formato binario. Algunos idiomas, como el chino, definen caracteres adicionales que se utilizan con menor frecuencia y que no están incluidos en el estándar Unicode. UCS-2 almacena estos caracteres complementarios como dos caracteres Unicode indefinidos que, cuando se unen en un par, definen un carácter complementario en el almacenamiento. De este modo, SQL Server almacena caracteres complementarios sin riesgo de pérdida o daños. Además, SQL Server 2005 permite utilizar y mostrar caracteres complementarios en cualquier aplicación basada en SQL Server, incluidas las aplicaciones basadas en herramientas como Business Intelligence.

Cuando se utiliza un editor de métodos de entrada (IME) de Microsoft para Windows Vista o Microsoft Office 2007, los caracteres complementarios se representan mediante puntos de código UCS U+10000 o superior.

Al utilizar caracteres complementarios, tenga en cuenta las siguientes limitaciones:

  • Los caracteres complementarios sólo se pueden utilizar en operaciones de ordenación y comparación en versiones de intercalación 90. Estas comparaciones sólo se basan en puntos de código y no en otras formas de significado lingüístico. Tenga cuidado al utilizar caracteres complementarios en operaciones como ORDER BY, GROUP BY y DISTINCT, sobre todo cuando se incluyen caracteres complementarios y no complementarios en una misma operación. Las versiones de intercalación 90 se distinguen por el sufijo 90 que se agrega a sus nombres. Por ejemplo, en lugar de la intercalación Japanese, utilice Japanese_90. Para obtener más información, vea Configuración de intercalación en el programa de instalación.
  • Como los caracteres complementarios se almacenan en forma de pares de dos caracteres de doble byte, la función LEN() devuelve el valor 2 para cada carácter complementario que esté contenido en la cadena del argumento. De forma similar, las funciones CHARINDEX y PATINDEX representan de forma incorrecta la existencia de caracteres complementarios dentro de cadenas de caracteres y la función NCHAR devuelve un carácter que sólo representa la mitad del par de caracteres complementarios. Al convertir un valor binary o varbinary a un carácter complementario también se produce sólo la mitad de un par de caracteres complementarios.
  • Las funciones LEFT, RIGHT, SUBSTRING, STUFF y REVERSE pueden dividir los pares de caracteres complementarios y provocar resultados inesperados.
  • Los caracteres complementarios no son compatibles con los caracteres comodín de subrayado (_), espacio ( ) y símbolo de intercalación (^).
  • Los caracteres complementarios no son compatibles con metadatos, como nombres de objetos de base de datos.
  • Gracias a su mecanismo de almacenamiento único, la presencia de caracteres complementarios puede utilizar recursos adicionales durante las operaciones de actualización del servidor y la base de datos.

SQL Server 2005 proporciona un ejemplo que ilustra el procesamiento de cadenas que detectan caracteres complementarios en una función CLR (Common Language Runtime). Para obtener más información, vea Manipulación de cadenas que detectan caracteres complementarios.

Vea también

Conceptos

Trabajar con codificaciones de caracteres especiales

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

12 de diciembre de 2006

Contenido nuevo:
  • Se ha aclarado la forma de determinar si un carácter es un carácter complementario.