Caracteres complementares

As cadeias de caracteres nchar e nvarchar armazenam cada caractere como um valor de 16 bits em uma codificação chamada UCS-2. Essa codificação, definida por versões da Unicode anteriores a 1996, dá suporte a caracteres no intervalo de U+0000 a U+FFFF. Versões mais novas da Unicode definiam caracteres adicionais no intervalo de U+10000 a U+10FFFF chamados de caracteres suplementares. Esses caracteres são armazenados como pares de valores de 16 bits, chamados depares substitutos em uma codificação chamada UTF-16. Todos os novos agrupamentos de nível _100 dão suporte à classificação lingüística com caracteres suplementares.

Se você usar caracteres suplementares, leve em consideração as seguintes limitações:

  • Caracteres suplementares só podem ser usados em operações de comparação e ordenação em versões de agrupamento 90 ou posteriores.

  • Como os caracteres suplementares são armazenados como dois valores de 16 bits, a função LEN() retorna o valor 2 para cada caractere suplementar contido na cadeia de caracteres do argumento. Da mesma forma, as funções CHARINDEX e PATINDEX representam incorretamente a ocorrência de caracteres suplementares dentro de cadeias de caracteres.

  • As funções LEFT, RIGHT, SUBSTRING, STUFF, e REVERSE podem dividir qualquer par substituto e levar a resultados inesperados.

  • Os caracteres suplementares não têm suporte para uso com o sublinhado (_), porcentagem (%) e caracteres curingas de circunflexo (^).

  • Caracteres suplementares não possuem suporte para uso em metadados, como em nomes de objetos de banco de dados.