Nom de classement Windows (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric

Spécifie le nom du classement Windows dans la COLLATE clause dans SQL Server. Le nom de classement Windows est composé d'un indicateur de classement et de styles de comparaison.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

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

Arguments

CollationDesignator

Spécifie les règles de classement de base utilisées par le classement Windows. Les règles de classement de base couvrent les points suivants :

  • Les règles de tri et de comparaison appliquées quand le tri de dictionnaire est spécifié. Les règles de tri sont basées sur l'alphabet ou la langue ;
  • La page de codes utilisée pour stocker les données varchar.

Quelques exemples :

  • Latin1_General ou French: les deux utilisent la page 1252de codes .
  • Turkish: utilise la page 1254de codes .

CaseSensitivity

CI spécifie l’insensible à la casse, CS spécifie la casse sensible à la casse.

AccentSensitivity

AI spécifie l’accent-insensible, AS spécifie les accentuations sensibles.

KanatypeSensitive

Omettre cette option spécifie kanatype-insensible, KS spécifie kanatype-sensitive.

WidthSensitivity

Omettre cette option spécifie l’insensible à la largeur, WS spécifie la largeur sensible.

VariationSelectorSensitivity

S’applique à : SQL Server 2017 (14.x) et versions ultérieures

Omettre cette option spécifie le sélecteur de variante non sensible, VSS spécifie le sélecteur de variante sensible.

UTF8

S’applique à : SQL Server 2019 (15.x) et versions ultérieures

Spécifie l’encodage UTF-8 à utiliser pour les types de données éligibles. Pour plus d’informations, voir Classement et prise en charge d’Unicode.

{ BIN | BIN2 }

  • BIN spécifie l’ordre de tri binaire à compatibilité descendante à utiliser.
  • BIN2 spécifie l’ordre de tri binaire qui utilise la sémantique de comparaison de points de code.

Notes

Selon la version du classement, certains points de code peuvent ne pas avoir de poids de tri, ou des mappages majuscules/minuscules définis. Par exemple, comparez la sortie de la LOWER fonction lorsqu’elle a le même caractère, mais dans différentes versions du même classement :

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

Voici le jeu de résultats.

Nom de la colonne Result
Uppercase Ǹ
Lowercase ǹ

La première instruction affiche les formes majuscules et minuscules de ce caractère dans l’ancien classement (le classement n’affecte pas la disponibilité des caractères lors de l’utilisation des données Unicode).

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

Voici le jeu de résultats.

Nom de la colonne Result
Version80Collation Ǹ
Version100Collation ǹ

La deuxième instruction montre qu’un caractère majuscule est retourné lorsque le classement est Latin1_General_CI_AS, car ce point de code n’a pas de mappage en minuscules défini dans ce classement.

Lors de l'utilisation de certaines langues, il peut être essentiel d'éviter les classements anciens. C'est par exemple le cas pour le télougou.

Dans certains cas, les classements Windows et les classements SQL Server peuvent générer différents plans de requête pour la même requête.

Exemples

Le tableau suivant décrit quelques exemples de noms de classement Windows.

Classement Description
Latin1_General_100_CI_AS Le classement utilise les règles de tri du dictionnaire latin1 général et est mappé à la page 1252de codes. Il s’agit d’un classement de version _100 , qui ne respecte pas la casse (CI) et respecte les accents (AS).
Estonian_CS_AS Le classement utilise les règles de tri du dictionnaire estonien et mappe à la page 1257de codes. Il s’agit d’un classement de version _80 (implicite par aucun numéro de version dans le nom) et respectant la casse (CS) et sensible aux accents (AS).
Japanese_Bushu_Kakusu_140_BIN2 Le classement utilise des règles de tri de point de code binaire et est mappé à la page 932de codes. Il s’agit d’un classement de version _140 , et les règles de tri de dictionnaire Bushu Kakusu japonaises sont ignorées.

Classements Windows

Pour énumérer les classements Windows pris en charge par votre d'instance de SQL Server, exécutez la requête suivante.

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