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 }
Observação
Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.
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
ouFrench
: ambos usam página de código1252
.Turkish
: usa a página de1254
có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];
Este é 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];
Este é 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 1252 de 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 1257 de 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 932 có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%';