Usando dados unicode

A especificação Unicode define um único esquema de codificação para a maioria dos caracteres amplamente usados em negócios ao redor do mundo. Todos os computadores traduzem os padrões de bit constantemente de dados de Unicode em caracteres que usam a especificação única de Unicode. Isso garante que o mesmo padrão de bit sempre seja convertido no mesmo caractere em todos os computadores. Os dados podem ser transferidos livremente de um banco de dados ou computador para outro, sem a preocupação de que o sistema receptor converterá os padrões de bit nos caracteres de forma incorreta.

Um problema com tipos de dados que usam 1 byte para codificar cada caractere é que o tipo de dados pode representar apenas 256 caracteres diferentes. Isso força especificações de codificação múltiplas ou páginas de código, para alfabetos diferentes como alfabetos europeus que são relativamente pequenos. Também é impossível lidar com sistemas como os alfabetos Kanji japonês ou o Hangul coreano que têm milhares de caracteres.

Cada agrupamento Microsoft SQL Server tem uma página de código que define qual padrão de bits representa cada caractere em valores char, varchar, e text . As colunas individuais e constantes de caracteres podem ser designados à uma página de código diferente. Os computadores clientes usam a página de código associada com a localidade do sistema operacional para interpretar padrões de bit de caractere. Há muitas páginas de código diferentes e alguns caracteres aparecem em algumas páginas de código, mas não em outras. Alguns caracteres são definidos com um padrão de bit em algumas páginas de código, e com um padrão de bit diferente em outras páginas de código. Quando você cria sistemas internacionais que devem lidar com linguagens diferentes, fica difícil escolher páginas de código para todos os computadores que satisfazem os requisitos de linguagem de múltiplos países e regiões. Também é difícil assegurar que todo computador execute as traduções corretas ao fazer interface com um sistema que usa uma página de código diferente.

A especificação Unicode trata deste problema usando 2 bytes para codificar cada caractere. Há bastante padrões diferentes (65,536) em 2 bytes para uma única especificação abrangendo as linguagens de negócio mais comuns. Em razão de todos os sistemas Unicode usarem os mesmos padrões de bit de forma consistente para representar todos os caracteres, não há nenhum problema com caracteres convertidos incorretamente ao serem movidos de um sistema a outro. Você pode minimizar os problemas da conversão de caractere usando tipos de dados Unicode em seu sistema.

No SQL Server, estes tipos de dados aceitam dados Unicode:

  • nchar

  • nvarchar

  • ntext

    ObservaçãoObservação

    O prefixo n para estes tipos de dados vem do padrão ISO para tipos de dados Nacionais (Unicode).

O uso de nchar, nvarchar, e ntext é o mesmo que char, varchar, e text, respectivamente, com a exceção de:

  • O Unicode oferece suporte à uma gama mais ampla de caracteres.

  • Mais espaço é necessário para armazenar caracteres Unicode.

  • O tamanho máximo de colunas nchar é 4,000 caracteres, não 8,000 caracteres como char e varchar.

  • O tamanho máximo para colunas nvarchar, usando o especificador máximo, é 2^31-1 bytes. Para obter mais informações sobre nvarchar(max), consulte Usando tipos de dados de valor grande.

  • As constantes Unicode são especificadas com uma cadeia de caracteres com um N principal: N'A Unicode.'

  • Todos os dados Unicode usam o conjunto de caracteres definidos pelo padrão Unicode. Agrupamentos Unicode usados para colunas Unicode são baseados em atributos como diferenciação de maiúsculas e minúsculas, sensibilidade de acentuação, sensibilidade de Kana, sensibilidade de largura e binário.