Caracteres complementares
Os tipos de dados 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 adicionais. Esses caracteres são armazenados como pares de valores de 16 bits, chamados de pares substitutos, em uma codificação chamada UTF-16. Todos os novos agrupamentos de nível _100 dão suporte à classificação linguística com caracteres suplementares.
Se você usar caracteres complementares, 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 maiores.
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 (^).
Os caracteres suplementares não têm suporte para uso em metadados, como em nomes de objetos de banco de dados.
Para um script Transact-SQL relacionado a este cenário, consulte o exemplo Manipulação de cadeia de caracteres com reconhecimento de suplementares. Para obter informações sobre exemplos, consulte Considerações para instalar exemplos e bancos de dados de exemplo do SQL Server.