Nome de ordenação do Windows (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric

Especifica o nome do agrupamento do Windows na COLLATE cláusula no SQL Server. O nome de ordenação do Windows é composto pelo designador de ordenação e pelos estilos de comparação.

Convenções de sintaxe de Transact-SQL

Sintaxe

<Windows_collation_name> ::=
<CollationDesignator>_<ComparisonStyle>

<ComparisonStyle> ::=
{ <CaseSensitivity>_<AccentSensitivity> [ _<KanatypeSensitive> ] [ _<WidthSensitive> ] [ _<VariationSelectorSensitive> ]
}
| { _UTF8 }
| { _BIN | _BIN2 }

Argumentos

CollationDesignator

Especifica as regras de ordenação básicas usadas pela ordenação do Windows. As regras de agrupamento base abrangem:

  • As regras de classificação e comparação aplicadas quando a classificação do dicionário é especificada. As regras de classificação são baseadas no alfabeto ou no idioma.
  • A página de código usada para armazenar dados varchar.

Alguns exemplos são:

  • Latin1_General ou French: ambos usam página de código 1252.
  • Turkish: usa a página de 1254código .

CaseSensitivity

CI especifica que não diferencia maiúsculas de minúsculas, CS especifica que diferencia maiúsculas de minúsculas.

AccentSensitivity

AI especifica sem distinção entre acentos, AS especifica com distinção entre acentos.

KanatypeSensitive

Omitir essa opção especifica kanatype-insensitive, KS especifica kanatype-sensitive.

WidthSensitivity

Omitir essa opção especifica a largura insensível, WS especifica a largura sensível.

VariationSelectorSensitivity

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores

Omitir essa opção especifica o seletor de variação que não diferencia, VSS especifica o seletor de variação que diferencia o seletor.

UTF8

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores

Especifica a codificação UTF-8 a ser usada para tipos de dados qualificados. Para obter mais informações, consulte Suporte de agrupamento e unicode.

{ BIN | BIN2 }

  • BIN Especifica a ordem de classificação binária compatível com versões anteriores a ser usada.
  • BIN2 Especifica a ordem de classificação binária que usa a semântica de comparação de ponto de código.

Comentários

Dependendo da versão da ordenação, alguns pontos de código podem não ter pesos de classificação ou mapeamentos de maiúsculas/minúsculas definidos. Por exemplo, compare a saída da LOWER função quando ela recebe o mesmo caractere, mas em versões diferentes da mesma ordenação:

SELECT NCHAR(504) COLLATE Latin1_General_CI_AS AS [Uppercase],
       NCHAR(505) COLLATE Latin1_General_CI_AS AS [Lowercase];

Veja a seguir o conjunto de resultados.

Nome da coluna Resultado
Uppercase Ǹ
Lowercase ǹ

A primeira instrução mostra as formas maiúsculas e minúsculas desse caractere na ordenação mais antiga (a ordenação não afeta a disponibilidade de caracteres ao trabalhar com dados Unicode).

SELECT LOWER(NCHAR(504) COLLATE Latin1_General_CI_AS) AS [Version80Collation],
       LOWER(NCHAR(504) COLLATE Latin1_General_100_CI_AS) AS [Version100Collation];

Veja a seguir o conjunto de resultados.

Nome da coluna Resultado
Version80Collation Ǹ
Version100Collation ǹ

A segunda instrução mostra que um caractere maiúsculo é retornado quando a ordenação é Latin1_General_CI_AS, porque esse ponto de código não tem um mapeamento em minúsculas definido nessa ordenação.

Ao trabalhar com alguns idiomas, pode ser crítico evitar ordenações mais antigas. Por exemplo, isso se aplica ao télugu.

Em alguns casos, os agrupamentos do Windows e do SQL Server podem gerar planos de consulta diferentes para a mesma consulta.

Exemplos

A tabela a seguir descreve alguns exemplos de nomes de ordenação do Windows.

Agrupamento Descrição
Latin1_General_100_CI_AS O agrupamento usa as regras de classificação do dicionário Latin1 General e mapeia para a página 1252de código. É um agrupamento de versão _100 e não diferencia maiúsculas de minúsculas (CI) e diferencia acentos (AS).
Estonian_CS_AS O agrupamento usa as regras de classificação do dicionário estoniano e mapeia para a página 1257de código. É um agrupamento de versão _80 (implícito por nenhum número de versão no nome) e diferencia maiúsculas de minúsculas (CS) e acentos (AS).
Japanese_Bushu_Kakusu_140_BIN2 O agrupamento usa regras de classificação de ponto de código binário e mapeia para a página de 932código. É um agrupamento de versão _140 e as regras de classificação do dicionário japonês Bushu Kakusu são ignoradas.

ordenações do Windows

Para listar as ordenações do Windows suportadas pela instância do SQL Server, execute a seguinte consulta.

SELECT *
FROM sys.fn_helpcollations()
WHERE [name] NOT LIKE N'SQL%';