Arquitetura de página de código
Os agrupamentos controlam o armazenamento físico de cadeias de caracteres em SQL Server. Um agrupamento especifica os padrões de bit que representam cada caractere e as regras pelas quais os caracteres são classificados e comparados.
Em um computador, os caracteres são representados por diferentes padrões de bits, tanto ON como OFF. Há 8 bits em um byte, e os 8 bits podem se tornar ON e OFF em 256 padrões diferentes. O programa que utiliza 1 byte para armazenar cada caractere pode, portanto, representar até 256 diferentes caracteres pela atribuição de um caractere para cada padrão de bit. Há 16 bits em 2 bytes, e 16 bits podem se tornar ON e OFF em 65.536 padrões exclusivos. Um programa que utiliza 2 bytes para representar cada caractere pode representar até 65.536 caracteres.
As páginas de código de um byte são definições dos caracteres mapeados para cada um dos 256 padrões de bit possíveis em um byte. As páginas de código definem os padrões de bit para caracteres maiúsculos e minúsculos, dígitos, símbolos e caracteres especiais, como o ponto de exclamação (!), o sinal de arroba (@), o sinal de número (#) ou de porcentagem (%). Cada idioma europeu, como o alemão ou o espanhol, têm sua própria página de código de um byte. Embora os padrões de bit utilizados para representar os caracteres do alfabeto latino de A a Z sejam os mesmos para todas as páginas de código, os padrões de bit usados para representar os caracteres acentuados variam de uma página de código para outra.
Os conjuntos de caracteres de um byte não podem armazenar todos os caracteres utilizados por diversos idiomas. Alguns idiomas asiáticos têm milhares de caracteres; por isso, eles precisam usar 2 bytes por caractere. Os conjuntos de caracteres de dois bytes foram definidos para esses idiomas e as páginas de código também foram definidas com base neles.
A tabela a seguir mostra as páginas de código às quais o SQL Server oferece suporte.
Página de código |
Descrição |
---|---|
1258 |
Vietnamita |
1257 |
Báltico |
1256 |
Árabe |
1255 |
Hebraico |
1254 |
Turco |
1253 |
Grego |
1252 |
Latin1 (ANSI) |
1251 |
Cirílico |
1250 |
Europeu central |
950 |
Chinês (tradicional) |
949 |
Coreano |
936 |
Chinês (simplificado) |
932 |
Japonês |
874 |
Tailandês |
850 |
Multilíngüe (MS-DOS Latin1) |
437 |
Inglês americano do MS-DOS |
Diversos agrupamentos podem usar a mesma página de código para dados não-Unicode. Por exemplo, a página de código 1251 define um conjunto de caracteres cirílicos. Essa página de código é utilizada por vários agrupamentos, como Cyrillic_General, Ukrainian e Macedonian_FYROM_90. Embora todos esses agrupamentos usem o mesmo conjunto de bits para representar dados de caracteres não-Unicode, as regras de classificação e comparação que eles aplicam são ligeiramente diferentes. Isso se dá porque eles conseguem manipular as definições de dicionário da seqüência correta de caracteres do idioma ou alfabeto associado com o agrupamento.