Share via


Caracteres complementarios

Los tipos de datos nchar y nvarchar almacenan cada carácter como un valor de 16 bits en una codificación llamada UCS-2. Esta codificación, definida por versiones de Unicode anteriores a 1996, admite caracteres que van de U+0000 a U+FFFF. Las versiones posteriores de Unicode han definido caracteres adicionales, de U+10000 a U+10FFFF, denominados caracteres complementarios. Estos caracteres se almacenan como pares de valores de 16 bits, que se llaman pares suplentes, en una codificación denominada UTF 16. Todas las nuevas intercalaciones de nivel _100 admiten la ordenación lingüística con caracteres complementarios. 

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

  • Los caracteres complementarios solo se pueden utilizar en operaciones de ordenación y comparación en versiones de intercalación 90 o mayor.

  • Como los caracteres complementarios se almacenan en forma de dos valores de 16 bits, la función LEN() devuelve el valor 2 para cada carácter complementario que esté contenido en la cadena del argumento. De igual forma, las funciones CHARINDEX y PATINDEX falsean la aparición de caracteres complementarios dentro de las cadenas de caracteres.

  • Las funciones LEFT, RIGHT, SUBSTRING, STUFF y REVERSE pueden dividir los pares suplentes y provocar resultados inesperados.

  • Los caracteres complementarios no son compatibles con los caracteres comodín de subrayado (_), porcentaje (%) y símbolo de intercalación (^).

  • Los caracteres complementarios no son compatibles con metadatos, como nombres de objetos de base de datos.

Para consultar un script Transact-SQL relacionado con este escenario, vea el ejemplo de Manipulación de cadenas que detectan caracteres complementarios. Para obtener información acerca de los ejemplos, vea Consideraciones para instalar ejemplos y bases de datos de ejemplo de SQL Server.