Nom de classement Windows (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Spécifie le nom de classement Windows dans la clause COLLATE 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 }

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

CollationDesignator
Spécifie les règles de classement de base utilisées par le classement Windows. Les règles de classement de base incluent les éléments 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 : ces deux ensembles de caractères s'appuient sur la page de codes 1252.
  • Turkish : utilise la page de code 1254.

CaseSensitivity
CI ne respecte pas la casse, contrairement à CS.

AccentSensitivity
AI ne respecte pas les accents, contrairement à AS.

KanatypeSensitive
L’oubli de cette option ne suit pas les caractères Kana, alors que KS les respecte.

WidthSensitivity
L’oubli de cette option ne tient pas compte des largeurs, alors que WS les respecte.

VariationSelectorSensitivity

  • S’applique à : À compter de SQL Server 2017 (14.x)

  • L’oubli de cette option spécifie le non-respect du sélecteur de variation, VSS spécifie le respect du sélecteur de variation.

UTF8

  • S’applique à : À compter de SQL Server 2019 (15.x)

  • Spécifie l’encodage UTF-8 à utiliser pour les types de données éligibles. Pour plus d’informations, consultez Prise en charge d’Unicode et du classement.

BIN
Indique l'ordre de tri binaire et assurant la compatibilité descendante à utiliser.

BIN2
Indique l'ordre de tri binaire utilisant la sémantique de comparaison des points de code.

Notes

Selon la version du classement, certains points de code peuvent ne pas avoir de pondérations de tri et/ou de mappages majuscules/minuscules définis. Par exemple, comparez la sortie de la fonction LOWER quand elle reçoit 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];
-- Ǹ    ǹ


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

La première instruction montre la forme majuscule et la forme minuscule de ce caractère dans le classement plus ancien (le classement n’affecte pas la disponibilité des caractères lors de l’utilisation de données Unicode). Cependant, la deuxième instruction montre qu’un caractère majuscule est retourné quand le classement est Latin1_General_CI_AS, car il n’y a pas de mappage aux minuscules défini pour ce point de code 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

Voici quelques exemples de noms de classements Windows :

  • Latin1_General_100_CI_AS

    Le classement utilise les mappages et les règles de tri du dictionnaire général Latin1 et établit un mappage à la page de codes 1252. Il s’agit d’un classement de la version _100, qui ne respecte pas la casse (CI) et respecte les accents (AS).

  • Estonian_CS_AS

    Ce classement utilise les règles de tri du dictionnaire estonien et il est mappé à la page de codes 1257. Il s’agit d’un classement de la version _80 (découlant de l’absence de numéro de version dans le nom), qui est sensible à la casse (CS) et qui respecte les accents (AS).

  • Japanese_Bushu_Kakusu_140_BIN2

    Le classement utilise les règles de tri du point de code binaire et il est mappé à la page de codes 932. Il s’agit d’un classement de la version _140 et les règles de tri du dictionnaire du japonais Bushu Kakusu 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%';

Le tableau suivant répertorie tous les classements Windows pris en charge dans SQL Server.

Paramètres régionaux Windows Classement version 100 Classement version 90
Alsacien (France) Latin1_General_100_ Non disponible
Amharique (Éthiopie) Latin1_General_100_ Non disponible
Arménien (Arménie) Cyrillic_General_100_ Non disponible
Assamais (Inde) Assamese_100_ 1 Non disponible
Bengali (Bangladesh) Bengali_100_1 Non disponible
Bachkir (Russie) Bashkir_100_ Non disponible
Basque (Basque) Latin1_General_100_ Non disponible
Bengali (India) Bengali_100_1 Non disponible
Bosniaque (Bosnie-Herzégovine, cyrillique) Bosnian_Cyrillic_100_ Non disponible
Bosniaque (Bosnie-Herzégovine, latin) Bosnian_Latin_100_ Non disponible
Breton (France) Breton_100_ Non disponible
Chinese (Macao (R.A.S.)) Chinese_Traditional_Pinyin_100_ Non disponible
Chinese (Macao (R.A.S.)) Chinese_Traditional_Stroke_Order_100_ Non disponible
Chinese (Singapore) Chinese_Simplified_Stroke_Order_100_ Non disponible
Corse (France) Corsican_100_ Non disponible
Croate (Bosnie-Herzégovine, latin) Croatian_100_ Non disponible
Dari (Afghanistan) Dari_100_ Non disponible
Anglais (Inde) Latin1_General_100_ Non disponible
Anglais (Malaisie) Latin1_General_100_ Non disponible
Anglais (Singapour) Latin1_General_100_ Non disponible
Filipino (Philippines) Latin1_General_100_ Non disponible
Frison (Pays-Bas) Frisian_100_ Non disponible
Géorgien (Géorgie) Cyrillic_General_100_ Non disponible
Groenlandais (Groenland) Danish_Greenlandic_100_ Non disponible
Goudjrati (Inde) Indic_General_100_1 Indic_General_90_
Haoussa (Nigeria, latin) Latin1_General_100_ Non disponible
Hindi (Inde) Indic_General_100_1 Indic_General_90_
Igbo (Nigeria) Latin1_General_100_ Non disponible
Inuktitut (Canada, latin) Latin1_General_100_ Non disponible
Inuktitut (syllabique, Canada) Latin1_General_100_ Non disponible
Irlandais (Irlande) Latin1_General_100_ Non disponible
Japonais (Japon XJIS) Japanese_XJIS_100_ Japanese_90_, Japanese_
Japonais (Japon) Japanese_Bushu_Kakusu_100_ Non disponible
Kannada (Inde) Indic_General_100_1 Indic_General_90_
Khmer (Cambodge) Khmer_100_1 Non disponible
Quiché (Guatemala) Modern_Spanish_100_ Non disponible
Kinyarwanda (Rwanda) Latin1_General_100_ Non disponible
Konkani (Inde) Indic_General_100_1 Indic_General_90_
Lao (RDP Lao) Lao_100_1 Non disponible
Bas-sorabe (Allemagne) Latin1_General_100_ Non disponible
Luxembourgeois (Luxembourg) Latin1_General_100_ Non disponible
Malayalam (Inde) Indic_General_100_1 Non disponible
Maltais (Malte) Maltese_100_ Non disponible
Maori (Nouvelle-Zélande) Maori_100_ Non disponible
Mapuche (Chili) Mapudungan_100_ Non disponible
Marathi (Inde) Indic_General_100_1 Indic_General_90_
Mohawk (Canada) Mohawk_100_ Non disponible
Mongol (République populaire de Chine) Cyrillic_General_100_ Non disponible
Népalais (Népal) Nepali_100_1 Non disponible
Norvégien (bokmål, Norvège) Norwegian_100_ Non disponible
Norvégien (Nynorsk, Norvège) Norwegian_100_ Non disponible
Occitan (France) French_100_ Non disponible
Odia (Inde) Indic_General_100_1 Non disponible
Pachtou (Afghanistan) Pashto_100_1 Non disponible
Persan (Iran) Persian_100_ Non disponible
Pendjabi (Inde) Indic_General_100_1 Indic_General_90_
Quechua (Bolivie) Latin1_General_100_ Non disponible
Quechua (Équateur) Latin1_General_100_ Non disponible
Quechua (Pérou) Latin1_General_100_ Non disponible
Romanche (Suisse) Romansh_100_ Non disponible
Same d'Inari (Finlande) Sami_Sweden_Finland_100_ Non disponible
Sami (Lule, Norvège) Sami_Norway_100_ Non disponible
Same de Lule (Suède) Sami_Sweden_Finland_100_ Non disponible
Same du nord (Finlande) Sami_Sweden_Finland_100_ Non disponible
Same du nord (Norvège) Sami_Norway_100_ Non disponible
Same du nord (Suède) Sami_Sweden_Finland_100_ Non disponible
Same de Skolt (Finlande) Sami_Sweden_Finland_100_ Non disponible
Same du sud (Norvège) Sami_Norway_100_ Non disponible
Same du sud (Suède) Sami_Sweden_Finland_100_ Non disponible
Sanskrit (Inde) Indic_General_100_1 Indic_General_90_
Serbe (Bosnie-Herzégovine, cyrillique) Serbian_Cyrillic_100_ Non disponible
Serbe (Bosnie-Herzégovine, latin) Serbian_Latin_100_ Non disponible
Serbe (Serbie, cyrillique) Serbian_Cyrillic_100_ Non disponible
Serbe (latin, Serbie) Serbian_Latin_100_ Non disponible
Sesotho sa Leboa/Sotho du Nord (Afrique du Sud) Latin1_General_100_ Non disponible
Setswana/Tswana (Afrique du Sud) Latin1_General_100_ Non disponible
Cingalais (Sri Lanka) Indic_General_100_1 Non disponible
Swahili (Kenya) Latin1_General_100_ Non disponible
Syriaque (Syrie) Syriac_100_1 Syriac_90_
Tadjik (Tadjikistan) Cyrillic_General_100_ Non disponible
Tamazight (Algérie, latin) Tamazight_100_ Non disponible
Tamoul (Inde) Indic_General_100_1 Indic_General_90_
Télougou (Inde) Indic_General_100_1 Indic_General_90_
Tibétain (RPC) Tibetan_100_1 Non disponible
Turkmène (Turkménistan) Turkmen_100_ Non disponible
Ouïgour (RPC) Uighur_100_ Non disponible
Haut-sorabe (Allemagne) Upper_Sorbian_100_ Non disponible
Ourdou (Pakistan) Urdu_100_ Non disponible
Gallois (Royaume-Uni) Welsh_100_ Non disponible
Wolof (Sénégal) French_100_ Non disponible
Xhosa (Afrique du Sud) Latin1_General_100_ Non disponible
Iakoute (Russie) Yakut_100_ Non disponible
Yi (RPC) Latin1_General_100_ Non disponible
Yoruba (Nigeria) Latin1_General_100_ Non disponible
Zoulou (Afrique du Sud) Latin1_General_100_ Non disponible
Déconseillé, non disponible au niveau serveur dans SQL Server 2008 (10.0.x) ou les versions ultérieures Hindi Hindi
Déconseillé, non disponible au niveau serveur dans SQL Server 2008 (10.0.x) ou les versions ultérieures Korean_Wansung_Unicode Korean_Wansung_Unicode
Déconseillé, non disponible au niveau serveur dans SQL Server 2008 (10.0.x) ou les versions ultérieures Lithuanian_Classic Lithuanian_Classic
Déconseillé, non disponible au niveau serveur dans SQL Server 2008 (10.0.x) ou les versions ultérieures Macédonien Macédonien

1 Les classements Windows Unicode seulement ne peuvent être appliqués qu’à des données de niveau colonne ou de niveau expression. Ils ne peuvent pas être utilisés en tant que classements de serveur ou de base de données.

2 Comme le classement chinois (Taiwan), le chinois (Macao (R.A.S.)) utilise les règles du chinois simplifié. Contrairement au chinois (Taiwan), il utilise la page de codes 950.

Voir aussi