Estilos de classificação de agrupamento do Windows

Durante a Instalação do SQL Server, você será solicitado a selecionar agrupamentos do Windows ou agrupamentos binários. Sua escolha de agrupamentos afeta a comparação de dados e os comportamentos de ordem de classificação de sua instância do MicrosoftSQL Server. Este tópico fornece considerações para a escolha de agrupamentos do Microsoft Windows ou agrupamentos binários para sua implementação do SQL Server.

ObservaçãoObservação

Para agrupamentos do Windows, os tipos de dados Unicode nchar, nvarchar e ntext têm o mesmo comportamento de classificação que os tipos de dados não-Unicode char, varchar e text.

Os agrupamentos do Windows definem regras para o armazenamento de dados de caractere com base em uma localidade do Windows associada. As regras base de agrupamento do Windows especificam qual alfabeto ou idioma será usado quando a classificação de dicionário for aplicada, bem como a página de código usada para armazenar dados de caracteres não-Unicode. Os agrupamentos binários classificam dados com base na seqüência de valores codificados definidos pela localidade e o tipo de dados. Um agrupamento binário do SQL Server define a localidade e a página de código ANSI a serem usadas, impondo uma ordem de classificação binária. Os agrupamentos binários são úteis no alcance de desempenho de aplicativo aprimorado devido à sua relativa simplicidade. Para tipos de dados não-Unicode, as comparações de dados têm como base os pontos de código definidos na página de código ANSI. Para tipos de dados Unicode, as comparações de dados têm como base os pontos de código Unicode. Para agrupamentos binários em tipos de dados Unicode, a localidade não é considerada em classificações de dados. Por exemplo, Latin_1_General_BIN e Japanese_BIN geram resultados de classificação idênticos quando usados em dados Unicode.

Os agrupamentos binários anteriores do SQL Server executavam uma comparação incompleta entre pontos de código para dados Unicode, em que os grupamentos binários mais antigos do SQL Server comparavam o primeiro caractere como WCHAR, seguido por uma comparação byte a byte. Por motivos de compatibilidade com versões anteriores, a semântica de agrupamento binário existente não será alterada.

Os agrupamentos binários desta versão do SQL Server também incluem um conjunto de agrupamentos de comparação de ponto de código puro. Os clientes podem optar por migrar para os agrupamentos binários para aproveitar as verdadeiras comparações de ponto de código e devem usar os agrupamentos binários no desenvolvimento de novos aplicativos. O sufixo BIN2 identifica nomes de agrupamentos que implementam a semântica de agrupamento de ponto de código. Também existe um sinalizador de comparação que corresponde a BIN2 para a nova classificação binária. Para obter mais informações, consulte Diretrizes para o uso de agrupamentos BIN e BIN2.

A tabela a seguir descreve as opções de ordem de classificação do agrupamento do Windows para o SQL Server.

Ordem de classificação (sufixo)

Descrição da ordem de classificação

Binária (_BIN)1

Classifica e compara dados em tabelas do SQL Server com base nos padrões de bit definidos para cada caractere. A ordem de classificação binária faz distinção entre maiúsculas e minúsculas e também de acentos. Binária também é a ordem de classificação mais rápida. Para obter mais informações, consulte Diretrizes para o uso de agrupamentos BIN e BIN2.

Se essa opção não for selecionada, o SQL Server seguirá as regras de classificação e comparação definidas em dicionários do idioma ou alfabeto associado.

Ponto de código binário (_BIN2)1

Classifica e compara dados em tabelas do SQL Server com base em pontos de código Unicode para dados Unicode. Para dados não-Unicode, o ponto de código binário usará comparações idênticas às classificações binárias.

A vantagem de usar uma ordem de classificação ponto de código binário é que nenhuma reclassificação de dados será necessária em aplicativos que comparam dados classificados do SQL Server. Como resultado, uma ordem de classificação de ponto de código binário fornece desenvolvimento de aplicativos mais simples e possíveis aumentos de desempenho. Para obter mais informações, consulte Diretrizes para o uso de agrupamentos BIN e BIN2.

Distinção de maiúsculas e minúsculas (_CS)

Faz distinção entre letras maiúsculas e minúsculas. Se selecionada, as letras minúsculas são ordenadas à frente das versões em letras maiúsculas.

Se essa opção não for selecionada, o SQL Server considera as versões de letras em maiúsculas e minúsculas como idênticas para fins de classificação.

Distinção de acentuação (_AS)

Faz distinção entre caracteres acentuados e não acentuados. Por exemplo, 'a’ não é igual a 'á'.

Se essa opção não for selecionada, o SQL Server considerará que as versões acentuadas e não acentuadas das letras são iguais para fins de classificação.

Distinção de caracteres Kana (_KS)

Distingue entre os dois tipos de caracteres kana japoneses: hiragana e katakana.

Se essa opção não for selecionada, o SQL Server considerará que caracteres hiragana e katakana são iguais para fins de classificação.

Distinção de largura (_WS)

Distingue entre um caractere de byte único e o mesmo caractere quando representado como um caractere de dois bytes.

Se essa opção não for selecionada, o SQL Server considerará as representações de byte único e dois bytes do mesmo caractere como iguais para fins de classificação.

1 Se for selecionada, as opções diferenciar maiúsculas de minúsculas, distinguir acentos, distinguir caracteres Kana e distinguir largura não estarão disponíveis.

Exemplos de agrupamentos do Windows

Cada agrupamento do Windows é combinado como uma série de sufixos para definir a distinção de maiúsculas e minúsculas, acentuação, largura ou kana. Os exemplos a seguir descrevem o comportamento da ordem de classificação para várias combinações de sufixos.

Sufixo de agrupamento do Windows

Descrição da ordem de classificação

_BIN1

Classificação binária.

_BIN21

Ordem de classificação de ponto de código binário.

_CI_AI

Não distingue maiúsculas e minúsculas, não distingue acentuação, não distingue caracteres kana, não distingue largura.

_CI_AI_KS

Não distingue maiúsculas e minúsculas, não distingue acentuação, distingue caracteres kana, não distingue largura.

_CI_AI_KS_WS

Não distingue maiúsculas e minúsculas, não distingue acentuação, distingue caracteres kana, distingue largura.

_CI_AI_WS

Não distingue maiúsculas e minúsculas, não distingue acentuação, não distingue caracteres kana, distingue largura.

_CI_AS

Não distingue maiúsculas e minúsculas, distingue acentuação, não distingue caracteres kana, não distingue largura.

_CI_AS_KS

Não distingue maiúsculas e minúsculas, distingue acentuação, distingue caracteres kana, não distingue largura.

_CI_AS_KS_WS

Não distingue maiúsculas e minúsculas, distingue acentuação, distingue caracteres kana, distingue largura.

_CI_AS_WS

Não distingue maiúsculas e minúsculas, distingue acentuação, não distingue caracteres kana, distingue largura.

_CS_AI

Distingue maiúsculas e minúsculas, não distingue acentuação, não distingue caracteres kana, não distingue largura

_CS_AI_KS

Distingue maiúsculas e minúsculas, não distingue acentuação, distingue caracteres kana, não distingue largura

_CS_AI_KS_WS

Distingue maiúsculas e minúsculas, não distingue acentuação, distingue caracteres kana, distingue largura

_CS_AI_WS

Distingue maiúsculas e minúsculas, não distingue acentuação, não distingue caracteres kana, distingue largura

_CS_AS

Distingue maiúsculas e minúsculas, distingue acentuação, não distingue caracteres kana, não distingue largura

_CS_AS_KS

Distingue maiúsculas e minúsculas, distingue acentuação, distingue caracteres kana, não distingue largura

_CS_AS_KS_WS

Distingue maiúsculas e minúsculas, distingue acentuação, distingue caracteres kana, distingue largura

_CS_AS_WS

Distingue maiúsculas e minúsculas, distingue acentuação, não distingue caracteres kana, distingue largura

1 Se BIN ou ponto de código binário for selecionada, as opções Diferenciar maiúsculas de minúsculas, Distinguir acentos, Distinguir caracteres Kana e Distinguir largura não estarão disponíveis.