Prise en charge d’Unicode et des classementsCollation and Unicode support

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database ouiAzure Synapse Analytics (SQL DW) ouiParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Les classements dans SQL ServerSQL Server fournissent les règles de tri et les propriétés de respect de la casse et des accents pour vos données.Collations in SQL ServerSQL Server provide sorting rules, case, and accent sensitivity properties for your data. Les classements utilisés avec les données de type caractère, tels que char et varchar, déterminent la page de codes et les caractères correspondants qui peuvent être représentés pour ce type de données.Collations that are used with character data types, such as char and varchar, dictate the code page and corresponding characters that can be represented for that data type.

Qu’il s’agisse d’installer une nouvelle instance de SQL ServerSQL Server, de restaurer une sauvegarde de base de données ou de connecter un serveur à des bases de données clientes, vous devez bien comprendre les exigences en termes de paramètres régionaux, d’ordre de tri et de respect de la casse et des accents des données que vous utilisez.Whether you're installing a new instance of SQL ServerSQL Server, restoring a database backup, or connecting server to client databases, it's important to understand the locale requirements, sorting order, and case and accent sensitivity of the data that you're working with. Pour lister les classements disponibles sur votre instance de SQL ServerSQL Server, consultez sys.fn_helpcollations (Transact-SQL).To list the collations that are available on your instance of SQL ServerSQL Server, see sys.fn_helpcollations (Transact-SQL).

Quand vous sélectionnez un classement pour votre serveur, base de données, colonne ou expression, vous assignez certaines caractéristiques à vos données.When you select a collation for your server, database, column, or expression, you're assigning certain characteristics to your data. Ces caractéristiques affectent les résultats de nombreuses opérations dans la base de données.These characteristics affect the results of many operations in the database. Par exemple, quand vous construisez une requête avec ORDER BY, l’ordre de tri de votre jeu de résultats peut dépendre du classement qui est appliqué à la base de données ou qui est stipulé dans une clause COLLATE au niveau de l’expression de la requête.For example, when you construct a query by using ORDER BY, the sort order of your result set might depend on the collation that's applied to the database or dictated in a COLLATE clause at the expression level of the query.

Pour exploiter au mieux la prise en charge des classements dans SQL ServerSQL Server, vous devez comprendre les termes qui sont définis dans cette rubrique et la relation qu’ils entretiennent avec les caractéristiques de vos données.To best use collation support in SQL ServerSQL Server, you should understand the terms that are defined in this topic and how they relate to the characteristics of your data.

Termes de classementCollation terms

ClassementCollation

Un classement désigne les modèles binaires qui représentent chaque caractère dans un jeu de données.A collation specifies the bit patterns that represent each character in a dataset. Les classements déterminent également les règles de tri et de comparaison des données.Collations also determine the rules that sort and compare data. SQL ServerSQL Server prend en charge le stockage d’objets ayant des classements différents dans une même base de données.supports storing objects that have different collations in a single database. Pour les colonnes non-Unicode, le paramètre de classement spécifie la page de codes pour les données et les caractères qui peuvent être représentés.For non-Unicode columns, the collation setting specifies the code page for the data and which characters can be represented. Les données que vous déplacez entre des colonnes non-Unicode doivent être converties de la page de codes source vers la page de codes de destination.The data that you move between non-Unicode columns must be converted from the source code page to the destination code page.

Le résultat d'une instructionTransact-SQLTransact-SQL peut varier lorsque cette dernière est exécutée dans un contexte réunissant plusieurs bases de données dont chacune a un paramètre de classement différent.Transact-SQLTransact-SQL statement results can vary when the statement is run in the context of different databases that have different collation settings. Dans la mesure du possible, choisissez un classement normalisé pour votre organisation.If possible, use a standardized collation for your organization. De cette manière, vous n’avez pas à spécifier le classement dans chaque caractère ou expression Unicode.This way, you don't have to specify the collation in every character or Unicode expression. Si vous devez utiliser des objets qui ont des paramètres de classement et de page de codes différents, codez vos requêtes conformément aux règles de priorité des classements.If you must work with objects that have different collation and code page settings, code your queries to consider the rules of collation precedence. Pour plus d’informations, consultez Priorité de classement (Transact-SQL).For more information, see Collation Precedence (Transact-SQL).

Les options associées à un classement sont le respect de la casse, le respect des accents, le respect du jeu de caractères Kana, le respect de la largeur et le respect du sélecteur de variante.The options associated with a collation are case sensitivity, accent sensitivity, kana sensitivity, width sensitivity, and variation-selector sensitivity. SQL Server 2019 (15.x)SQL Server 2019 (15.x) introduit une option supplémentaire pour l’encodage UTF-8.introduces an additional option for UTF-8 encoding.

Vous pouvez spécifier ces options en les ajoutant au nom du classement.You can specify these options by appending them to the collation name. Par exemple, le classement Japanese_Bushu_Kakusu_100_CS_AS_KS_WS_UTF8 respecte la casse, les accents, le jeu de caractères Kana et la largeur, et il est encodé en UTF-8.For example, the collation Japanese_Bushu_Kakusu_100_CS_AS_KS_WS_UTF8 is case-sensitive, accent-sensitive, kana-sensitive, width-sensitive, and UTF-8 encoded. Autre exemple : le classement Japanese_Bushu_Kakusu_140_CI_AI_KS_WS_VSS ne respecte pas la casse, ne respecte pas les accents, respecte le jeu de caractères Kana, respecte la largeur, respecte le sélecteur de variante et utilise un encodage non-Unicode.As another example, the collation Japanese_Bushu_Kakusu_140_CI_AI_KS_WS_VSS is case-insensitive, accent-insensitive, kana-sensitive, width-sensitive, variation-selector-sensitive, and it uses non-Unicode encoding.

Le comportement associé à ces différentes options est décrit dans le tableau suivant :The behavior associated with these various options is described in the following table:

OptionOption DescriptionDescription
Respecter la casse (_CS)Case-sensitive (_CS) Fait la distinction entre les majuscules et les minuscules.Distinguishes between uppercase and lowercase letters. Si cette option est sélectionnée, les minuscules sont triées avant leurs équivalents majuscules.If this option is selected, lowercase letters sort ahead of their uppercase versions. Si cette option n’est pas sélectionnée, le classement ne respecte pas la casse.If this option isn't selected, the collation is case-insensitive. Dans ce cas, SQL ServerSQL Server considère que les versions en majuscules et en minuscules des lettres sont identiques dans les opérations de tri.That is, SQL ServerSQL Server considers the uppercase and lowercase versions of letters to be identical for sorting purposes. Pour sélectionner explicitement le non-respect de la casse, spécifiez _CI.You can explicitly select case insensitivity by specifying _CI.
Respecter les accents (_AS)Accent-sensitive (_AS) Fait la distinction entre les caractères accentués et non accentués.Distinguishes between accented and unaccented characters. Par exemple, « a » n’est pas équivalent à « ấ ».For example, "a" is not equal to "ấ". Si cette option n’est pas sélectionnée, le classement ne respecte pas les accents.If this option isn't selected, the collation is accent-insensitive. Dans ce cas, SQL ServerSQL Server considère que la version accentuée et la version non accentuée d’une même lettre sont identiques dans les opérations de tri.That is, SQL ServerSQL Server considers the accented and unaccented versions of letters to be identical for sorting purposes. Pour sélectionner explicitement le non-respect des accents, spécifiez _AI.You can explicitly select accent insensitivity by specifying _AI.
Respecter le jeu de caractères Kana (_KS)Kana-sensitive (_KS) Fait la distinction entre les deux types de caractères japonais Kana : Hiragana et Katakana.Distinguishes between the two types of Japanese kana characters: Hiragana and Katakana. Si cette option n’est pas sélectionnée, le classement ne respecte pas les caractères Kana.If this option isn't selected, the collation is kana-insensitive. Dans ce cas, SQL ServerSQL Server considère que les caractères Hiragana et Katakana sont identiques dans les opérations de tri.That is, SQL ServerSQL Server considers Hiragana and Katakana characters to be equal for sorting purposes. L’omission de cette option est le seul moyen de spécifier le non-respect du jeu de caractères Kana.Omitting this option is the only method of specifying kana-insensitivity.
Respecter la largeur (_WS)Width-sensitive (_WS) Fait la différence entre les caractères pleine largeur et demi-largeur.Distinguishes between full-width and half-width characters. Si cette option n’est pas sélectionnée, SQL ServerSQL Server considère que la représentation pleine largeur et demi-largeur d’un même caractère sont identiques dans les opérations de tri.If this option isn't selected, SQL ServerSQL Server considers the full-width and half-width representation of the same character to be identical for sorting purposes. L'omission de cette option est le seul moyen de spécifier le non-respect de la largeur.Omitting this option is the only method of specifying width-insensitivity.
Respecter le sélecteur de variante (_VSS)Variation-selector-sensitive (_VSS) Fait la distinction entre différents sélecteurs de variante idéographiques dans les classements japonais Japanese_Bushu_Kakusu_140 et Japanese_XJIS_140, qui sont introduits dans SQL Server 2017 (14.x)SQL Server 2017 (14.x).Distinguishes between various ideographic variation selectors in the Japanese collations Japanese_Bushu_Kakusu_140 and Japanese_XJIS_140, which are introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x). Une séquence de variantes se compose d’un caractère de base et d’un sélecteur de variante supplémentaire.A variation sequence consists of a base character plus an additional variation selector. Si l’option _VSS n’est pas sélectionnée, le classement ne respecte pas le sélecteur de variante, qui n’est pas non plus pris en compte dans la comparaison.If this _VSS option isn't selected, the collation is variation-selector-insensitive, and the variation selector isn't considered in the comparison. Autrement dit, SQL ServerSQL Server considère comme identiques pour les tris les caractères basés sur le même caractère de base avec différents sélecteurs de variante.That is, SQL ServerSQL Server considers characters built upon the same base character with differing variation selectors to be identical for sorting purposes. Pour plus d’informations, consultez Unicode Ideographic Variation Database.For more information, see Unicode Ideographic Variation Database.

Les classements qui respectent le sélecteur de variante (_VSS) ne sont pas pris en charge par les index de recherche en texte intégral,Variation-selector-sensitive (_VSS) collations aren't supported in full-text search indexes. qui ne gèrent que les options Respecter les accents (_AS), Respecter le jeu de caractères Kana (_KS) et Respecter la largeur (_WS).Full-text search indexes support only Accent-Sensitive (_AS), Kana-sensitive (_KS), and Width-sensitive (_WS) options. Les moteurs XML et CLR de SQL ServerSQL Server ne prennent pas en charge les sélecteurs de variante (_VSS).SQL ServerSQL Server XML and CLR engines don't support (_VSS) Variation selectors.
Binaire (_BIN)1Binary (_BIN)1 Trie et compare les données dans les tables SQL ServerSQL Server en fonction des modèles de bits définis pour chaque caractère.Sorts and compares data in SQL ServerSQL Server tables based on the bit patterns defined for each character. L’ordre de tri binaire respecte la casse et les accents.Binary sort order is case-sensitive and accent-sensitive. Il s'agit aussi de l'ordre de tri le plus rapide.Binary is also the fastest sorting order. Pour plus d’informations, consultez la section Classements binaires de cet article.For more information, see the Binary collations section in this article.
Point de code binaire (_BIN2)1Binary-code point (_BIN2)1 Trie et compare les données des tables SQL ServerSQL Server en fonction des points de code Unicode pour les données Unicode.Sorts and compares data in SQL ServerSQL Server tables based on Unicode code points for Unicode data. Pour les données non-Unicode, le point de code binaire utilise des comparaisons identiques à celles utilisées pour les tris binaires.For non-Unicode data, Binary-code point uses comparisons that are identical to those for binary sorts.

L’utilisation d’un ordre de tri de point de code binaire présente l’avantage de ne devoir retrier les données dans les applications qui comparent les données triées de SQL ServerSQL Server.The advantage of using a Binary-code point sort order is that no data resorting is required in applications that compare sorted SQL ServerSQL Server data. Par conséquent, un ordre de tri de point de code binaire simplifie le développement des applications et permet d’améliorer les performances.As a result, a Binary-code point sort order provides simpler application development and possible performance increases. Pour plus d’informations, consultez la section Classements binaires de cet article.For more information, see the Binary collations section in this article.
UTF-8 (_UTF8)UTF-8 (_UTF8) Permet le stockage des données encodées en UTF-8 dans SQL ServerSQL Server.Enables UTF-8 encoded data to be stored in SQL ServerSQL Server. Si cette option n’est pas sélectionnée, SQL ServerSQL Server utilise le format d’encodage non-Unicode par défaut pour les types de données applicables.If this option isn't selected, SQL ServerSQL Server uses the default non-Unicode encoding format for the applicable data types. Pour plus d’informations, consultez la section Prise en charge d’UTF-8 de cet article.For more information, see the UTF-8 Support section in this article.

1 Si Binaire ou Point de code binaire est sélectionné, les options Respecter la casse (_CS), Respecter les accents (_AS), Respecter les caractères Kana (_KS) et Respecter la largeur (_WS) ne sont pas disponibles.1 If Binary or Binary-code point is selected, the Case-sensitive (_CS), Accent-sensitive (_AS), Kana-sensitive (_KS), and Width-sensitive (_WS) options are not available.

Exemples d’options de classementExamples of collation options

Chaque classement se présente comme une série de suffixes permettant de définir le respect de la casse, des accents, de la largeur ou des caractères Kana.Each collation is combined as a series of suffixes to define case-, accent-, width-, or kana-sensitivity. Les exemples suivants décrivent le comportement de l’ordre de tri selon différentes combinaisons de suffixes.The following examples describe sort order behavior for various combinations of suffixes.

Suffixe de classement WindowsWindows collation suffix Description de l'ordre de triSort order description
_BIN1_BIN1 Tri binaireBinary sort
_BIN21, 2_BIN21, 2 Ordre de tri de point de code binaireBinary-code point sort order
_CI_AI2_CI_AI2 Non-respect de la casse, non-respect des accents, non-respect des caractères Kana, non-respect de la largeurCase-insensitive, accent-insensitive, kana-insensitive, width-insensitive
_CI_AI_KS2_CI_AI_KS2 Non-respect de la casse, non-respect des accents, respect des caractères Kana, non-respect de la largeurCase-insensitive, accent-insensitive, kana-sensitive, width-insensitive
_CI_AI_KS_WS2_CI_AI_KS_WS2 Non-respect de la casse, non-respect des accents, respect des caractères Kana, respect de la largeurCase-insensitive, accent-insensitive, kana-sensitive, width-sensitive
_CI_AI_WS2_CI_AI_WS2 Non-respect de la casse, non-respect des accents, non-respect des caractères Kana, respect de la largeurCase-insensitive, accent-insensitive, kana-insensitive, width-sensitive
_CI_AS2_CI_AS2 Non-respect de la casse, respect des accents, non-respect des caractères Kana, non-respect de la largeurCase-insensitive, accent-sensitive, kana-insensitive, width-insensitive
_CI_AS_KS2_CI_AS_KS2 Non-respect de la casse, respect des accents, respect des caractères Kana, non-respect de la largeurCase-insensitive, accent-sensitive, kana-sensitive, width-insensitive
_CI_AS_KS_WS2_CI_AS_KS_WS2 Non-respect de la casse, respect des accents, respect des caractères Kana, respect de la largeurCase-insensitive, accent-sensitive, kana-sensitive, width-sensitive
_CI_AS_WS2_CI_AS_WS2 Non-respect de la casse, respect des accents, non-respect des caractères Kana, respect de la largeurCase-insensitive, accent-sensitive, kana-insensitive, width-sensitive
_CS_AI2_CS_AI2 Respect de la casse, non-respect des accents, non-respect des caractères Kana, non-respect de la largeurCase-sensitive, accent-insensitive, kana-insensitive, width-insensitive
_CS_AI_KS2_CS_AI_KS2 Respect de la casse, non-respect des accents, respect des caractères Kana, non-respect de la largeurCase-sensitive, accent-insensitive, kana-sensitive, width-insensitive
_CS_AI_KS_WS2_CS_AI_KS_WS2 Respect de la casse, non-respect des accents, respect des caractères Kana, respect de la largeurCase-sensitive, accent-insensitive, kana-sensitive, width-sensitive
_CS_AI_WS2_CS_AI_WS2 Respect de la casse, non-respect des accents, non-respect des caractères Kana, respect de la largeurCase-sensitive, accent-insensitive, kana-insensitive, width-sensitive
_CS_AS2_CS_AS2 Respect de la casse, respect des accents, non-respect des caractères Kana, non-respect de la largeurCase-sensitive, accent-sensitive, kana-insensitive, width-insensitive
_CS_AS_KS2_CS_AS_KS2 Respect de la casse, respect des accents, respect des caractères Kana, non-respect de la largeurCase-sensitive, accent-sensitive, kana-sensitive, width-insensitive
_CS_AS_KS_WS2_CS_AS_KS_WS2 Respect de la casse, respect des accents, respect des caractères Kana, respect de la largeurCase-sensitive, accent-sensitive, kana-sensitive, width-sensitive
_CS_AS_WS2_CS_AS_WS2 Respect de la casse, respect des accents, non-respect des caractères Kana, respect de la largeurCase-sensitive, accent-sensitive, kana-insensitive, width-sensitive

1 Si Binaire ou Point de code binaire est sélectionné, les options Respecter la casse (_CS), Respecter les accents (_AS), Respecter les caractères Kana (_KS) et Respecter la largeur (_WS) ne sont pas disponibles.1 If Binary or Binary-code point is selected, the Case-sensitive (_CS), Accent-sensitive (_AS), Kana-sensitive (_KS), and Width-sensitive (_WS) options aren't available.

2 L’ajout de l’option UTF-8 (_UTF8) vous permet d’encoder les données Unicode avec UTF-8.2 Adding the UTF-8 option (_UTF8) enables you to encode Unicode data by using UTF-8. Pour plus d’informations, consultez la section Prise en charge d’UTF-8 de cet article.For more information, see the UTF-8 Support section in this article.

Ensembles de classementsCollation sets

SQL ServerSQL Server prend en charge les ensembles de classement suivants :supports the following collation sets:

Classements WindowsWindows collations

Les classements Windows définissent les règles de stockage des données de type caractère selon les paramètres régionaux système Windows associés.Windows collations define rules for storing character data that's based on an associated Windows system locale. Pour un classement Windows, vous pouvez implémenter une comparaison de données non-Unicode via le même algorithme que pour les données Unicode.For a Windows collation, you can implement a comparison of non-Unicode data by using the same algorithm as that for Unicode data. Les règles de classement Windows de base spécifient l’alphabet ou la langue utilisée pour le tri du dictionnaire.The base Windows collation rules specify which alphabet or language is used when dictionary sorting is applied. Les règles spécifient également la page de codes utilisée pour stocker les données de type caractère non-Unicode.The rules also specify the code page that's used to store non-Unicode character data. Les tris Unicode et non-Unicode sont compatibles avec les comparaisons de chaînes dans une version particulière de Windows.Both Unicode and non-Unicode sorting are compatible with string comparisons in a particular version of Windows. Les types de données sont ainsi cohérents dans SQL ServerSQL Server, ce qui permet aux développeurs de trier les chaînes dans leurs applications en appliquant les mêmes règles que celles utilisées par SQL ServerSQL Server.This provides consistency across data types within SQL ServerSQL Server, and it lets developers sort strings in their applications by using the same rules that are used by SQL ServerSQL Server. Pour plus d’informations, consultez Nom de classement Windows (Transact-SQL).For more information, see Windows Collation Name (Transact-SQL).

Classements binairesBinary collations

Les classements binaires trient les données en fonction de la séquence des valeurs codées qui sont définies par les paramètres régionaux et le type de données.Binary collations sort data based on the sequence of coded values that are defined by the locale and data type. Ils respectent la casse.They're case-sensitive. Un classement binaire dans SQL ServerSQL Server définit les paramètres régionaux et la page de codes ANSI à utiliser.A binary collation in SQL ServerSQL Server defines the locale and the ANSI code page that's used. Cela applique un ordre de tri binaire.This enforces a binary sort order. Parce qu’ils sont relativement simples, les classements binaires aident à améliorer les performances de l’application.Because they're relatively simple, binary collations help improve application performance. Pour les types de données non-Unicode, les comparaisons de données sont basées sur les points de code qui sont définis dans la page de codes ANSI.For non-Unicode data types, data comparisons are based on the code points that are defined on the ANSI code page. Pour les données de type Unicode, les comparaisons de données se basent sur les points de code Unicode.For Unicode data types, data comparisons are based on the Unicode code points. Pour le classement binaire des types de données Unicode, les paramètres régionaux (la langue) ne sont pas pris en compte dans les tris de données.For binary collations on Unicode data types, the locale isn't considered in data sorts. Par exemple, Latin_1_General_BIN et Japanese_BIN produisent des résultats de tri identiques quand ils sont utilisés avec des données Unicode.For example, Latin_1_General_BIN and Japanese_BIN yield identical sorting results when they're used on Unicode data. Pour plus d’informations, consultez Nom de classement Windows (Transact-SQL).For more information, see Windows Collation Name (Transact-SQL).

Il existe deux types de classements binaires dans SQL ServerSQL Server :There are two types of binary collations in SQL ServerSQL Server:

  • Les classements BIN précédents, qui effectuaient une comparaison incomplète de point de code à point de code pour les données Unicode.The legacy BIN collations, which performed an incomplete code-point-to-code-point comparison for Unicode data. Ces classements binaires hérités comparaient le premier caractère comme WCHAR, suivi d’une comparaison octet par octet.These legacy binary collations compared the first character as WCHAR, followed by a byte-by-byte comparison. Dans un classement BIN, seul le premier caractère est trié selon le point de code. Les autres caractères sont triés en fonction de leurs valeurs d’octet.In a BIN collation, only the first character is sorted according to the code point, and remaining characters are sorted according to their byte values.

  • Les classements BIN2 plus récents, qui implémentent une comparaison de point de code pure.The newer BIN2 collations, which implement a pure code-point comparison. Dans un classement BIN2, tous les caractères sont triés en fonction de leurs points de code.In a BIN2 collation, all characters are sorted according to their code points. En raison de l’architecture little endian de la plateforme Intel, les caractères de code Unicode sont toujours stockés avec les octets inversés.Because the Intel platform is a little endian architecture, Unicode code characters are always stored byte-swapped.

Classements SQL ServerSQL Server collations

Les classements de SQL ServerSQL Server (SQL_*) offrent la compatibilité des ordres de tri avec les versions antérieures de SQL ServerSQL Server.SQL ServerSQL Server collations (SQL_*) provide sort order compatibility with earlier versions of SQL ServerSQL Server. Les règles de tri du dictionnaire pour les données non-Unicode ne sont pas compatibles avec les routines de tri fournies par les systèmes d’exploitation Windows.The dictionary sorting rules for non-Unicode data are incompatible with any sorting routine that's provided by Windows operating systems. Toutefois, le tri de données Unicode est compatible avec une version particulière de règles de tri Windows.However, sorting Unicode data is compatible with a particular version of Windows sorting rules. Comme les classements SQL ServerSQL Server utilisent des règles de comparaison différentes pour les données Unicode et non-Unicode, vous pouvez obtenir des résultats différents pour des comparaisons des mêmes données, selon le type de données sous-jacent.Because SQL ServerSQL Server collations use different comparison rules for non-Unicode and Unicode data, you see different results for comparisons of the same data, depending on the underlying data type. Pour plus d’informations, consultez Nom du classement SQL Server (Transact-SQL).For more information, see SQL Server Collation Name (Transact-SQL).

Lors de l’installation de SQL ServerSQL Server, le classement par défaut est déterminé par les paramètres régionaux du système d’exploitation.During SQL ServerSQL Server setup, the default installation collation setting is determined by the operating system (OS) locale. Vous pouvez modifier le classement au niveau du serveur pendant l’installation ou en modifiant les paramètres régionaux du système d’exploitation avant l’installation.You can change the server-level collation either during setup or by changing the OS locale before installation. Pour garantir la compatibilité ascendante, le classement par défaut est défini d’après la version disponible la plus ancienne associée à chaque ensemble de paramètres régionaux spécifiques.For backward compatibility reasons, the default collation is set to the oldest available version that's associated with each specific locale. Par conséquent, il ne s’agit pas toujours du classement recommandé.Therefore, this isn't always the recommended collation. Pour tirer pleinement parti des fonctionnalités de SQL ServerSQL Server, modifiez les paramètres d’installation par défaut de façon à utiliser les classements Windows.To take full advantage of SQL ServerSQL Server features, change the default installation settings to use Windows collations. Par exemple, pour les paramètres régionaux du système d’exploitation « Anglais (États-Unis) » (page de codes 1252), le classement par défaut lors de l’installation est SQL_Latin1_General_CP1_CI_AS et il peut être remplacé par le classement Windows le plus proche Latin1_General_100_CI_AS_SC équivalent.For example, for the OS locale "English (United States)" (code page 1252), the default collation during setup is SQL_Latin1_General_CP1_CI_AS, and it can be changed to its closest Windows collation counterpart, Latin1_General_100_CI_AS_SC.

Notes

Quand vous mettez à niveau une instance en anglais de SQL ServerSQL Server, vous pouvez spécifier les classements SQL ServerSQL Server (SQL_*) pour la compatibilité avec les instances SQL ServerSQL Server existantes.When you upgrade an English-language instance of SQL ServerSQL Server, you can specify SQL ServerSQL Server collations (SQL_*) for compatibility with existing instances of SQL ServerSQL Server. Le classement par défaut d’une instance SQL ServerSQL Server étant défini au cours de la procédure d’installation, assurez-vous de spécifier soigneusement les paramètres de classement dans les cas suivants :Because the default collation for an instance of SQL ServerSQL Server is defined during setup, make sure that you specify the collation settings carefully when the following conditions are true:

  • Votre code d'application dépend du comportement des classements SQL ServerSQL Server précédents.Your application code depends on the behavior of previous SQL ServerSQL Server collations.
  • Vous devez stocker des données de caractères de plusieurs langues.You must store character data that reflects multiple languages.

Niveaux de classementCollation levels

Les paramétrages des classements sont pris en charge aux niveaux suivants d'une instance SQL ServerSQL Server:Setting collations are supported at the following levels of an instance of SQL ServerSQL Server:

Classements au niveau du serveurServer-level collations

Le classement par défaut du serveur est défini lors de l’installation de SQL ServerSQL Server, et il devient le classement par défaut des bases de données système et de toutes les bases de données utilisateur.The default server collation is determined during SQL ServerSQL Server setup, and it becomes the default collation of the system databases and all user databases.

Le tableau suivant montre les désignations de classement par défaut, telles qu’elles sont déterminées par les paramètres régionaux du système d’exploitation, avec leurs identificateurs de code de langue (LCID) Windows et SQL :The following table shows the default collation designations, as determined by the operating system (OS) locale, including their Windows and SQL Language Code Identifiers (LCID):

Paramètres régionaux WindowsWindows locale LCID WindowsWindows LCID LCID SQLSQL LCID Classement par défautDefault collation
Afrikaans (Afrique du Sud)Afrikaans (South Africa) 0x04360x0436 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Albanais (Albanie)Albanian (Albania) 0x041c0x041c 0x041c0x041c Albanian_CI_ASAlbanian_CI_AS
Alsacien (France)Alsatian (France) 0x04840x0484 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Amharique (Éthiopie)Amharic (Ethiopia) 0x045e0x045e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Arabe (Algérie)Arabic (Algeria) 0x14010x1401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Bahreïn)Arabic (Bahrain) 0x3c010x3c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Égypte)Arabic (Egypt) 0x0c010x0c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Irak)Arabic (Iraq) 0x08010x0801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Jordanie)Arabic (Jordan) 0x2c010x2c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Koweït)Arabic (Kuwait) 0x34010x3401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Liban)Arabic (Lebanon) 0x30010x3001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Libye)Arabic (Libya) 0x10010x1001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Maroc)Arabic (Morocco) 0x18010x1801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Oman)Arabic (Oman) 0x20010x2001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Qatar)Arabic (Qatar) 0x40010x4001 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Arabie saoudite)Arabic (Saudi Arabia) 0x04010x0401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Syrie)Arabic (Syria) 0x28010x2801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Tunisie)Arabic (Tunisia) 0x1c010x1c01 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (E.A.U.)Arabic (U.A.E.) 0x38010x3801 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arabe (Yémen)Arabic (Yemen) 0x24010x2401 0x04010x0401 Arabic_CI_ASArabic_CI_AS
Arménien (Arménie)Armenian (Armenia) 0x042b0x042b 0x04190x0419 Latin1_General_CI_ASLatin1_General_CI_AS
Assamais (Inde)Assamese (India) 0x044d0x044d 0x044d0x044d Non disponible au niveau du serveurNot available at server level
Azéri (Azerbaïdjan, cyrillique)Azeri (Azerbaijan, Cyrillic) 0x082c0x082c 0x082c0x082c Déprécié, non disponible au niveau serveurDeprecated, not available at server level
Azéri (Azerbaïdjan, latin)Azeri (Azerbaijan, Latin) 0x042c0x042c 0x042c0x042c Déprécié, non disponible au niveau serveurDeprecated, not available at server level
Bachkir (Russie)Bashkir (Russia) 0x046d0x046d 0x046d0x046d Latin1_General_CI_AILatin1_General_CI_AI
Basque (Basque)Basque (Basque) 0x042d0x042d 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Biélorusse (Bélarus)Belarusian (Belarus) 0x04230x0423 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Bengali (Bangladesh)Bengali (Bangladesh) 0x08450x0845 0x04450x0445 Non disponible au niveau du serveurNot available at server level
Bengali (India)Bengali (India) 0x04450x0445 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Bosniaque (Bosnie-Herzégovine, cyrillique)Bosnian (Bosnia and Herzegovina, Cyrillic) 0x201a0x201a 0x201a0x201a Latin1_General_CI_AILatin1_General_CI_AI
Bosniaque (Bosnie-Herzégovine, latin)Bosnian (Bosnia and Herzegovina, Latin) 0x141a0x141a 0x141a0x141a Latin1_General_CI_AILatin1_General_CI_AI
Breton (France)Breton (France) 0x047e0x047e 0x047e0x047e Latin1_General_CI_AILatin1_General_CI_AI
Bulgare (Bulgarie)Bulgarian (Bulgaria) 0x04020x0402 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Catalan (Catalogne)Catalan (Catalan) 0x04030x0403 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Chinois (Hong Kong R.A.S., RPC)Chinese (Hong Kong SAR, PRC) 0x0c040x0c04 0x04040x0404 Chinese_Taiwan_Stroke_CI_ASChinese_Taiwan_Stroke_CI_AS
Chinese (Macao (R.A.S.))Chinese (Macao SAR) 0x14040x1404 0x14040x1404 Latin1_General_CI_AILatin1_General_CI_AI
Chinois (Macao)Chinese (Macau) 0x214040x21404 0x214040x21404 Latin1_General_CI_AILatin1_General_CI_AI
Chinois (RPC)Chinese (PRC) 0x08040x0804 0x08040x0804 Chinese_PRC_CI_ASChinese_PRC_CI_AS
Chinois (RPC)Chinese (PRC) 0x208040x20804 0x208040x20804 Chinese_PRC_Stroke_CI_ASChinese_PRC_Stroke_CI_AS
Chinese (Singapore)Chinese (Singapore) 0x10040x1004 0x08040x0804 Chinese_PRC_CI_ASChinese_PRC_CI_AS
Chinese (Singapore)Chinese (Singapore) 0x210040x21004 0x208040x20804 Chinese_PRC_Stroke_CI_ASChinese_PRC_Stroke_CI_AS
Chinois (Taïwan)Chinese (Taiwan) 0x304040x30404 0x304040x30404 Chinese_Taiwan_Bopomofo_CI_ASChinese_Taiwan_Bopomofo_CI_AS
Chinois (Taïwan)Chinese (Taiwan) 0x04040x0404 0x04040x0404 Chinese_Taiwan_Stroke_CI_ASChinese_Taiwan_Stroke_CI_AS
Corse (France)Corsican (France) 0x04830x0483 0x04830x0483 Latin1_General_CI_AILatin1_General_CI_AI
Croate (Bosnie-Herzégovine, latin)Croatian (Bosnia and Herzegovina, Latin) 0x101a0x101a 0x041a0x041a Croatian_CI_ASCroatian_CI_AS
Croate (Croatie)Croatian (Croatia) 0x041a0x041a 0x041a0x041a Croatian_CI_ASCroatian_CI_AS
Tchèque (République tchèque)Czech (Czech Republic) 0x04050x0405 0x04050x0405 Czech_CI_ASCzech_CI_AS
Danois (Danemark)Danish (Denmark) 0x04060x0406 0x04060x0406 Danish_Norwegian_CI_ASDanish_Norwegian_CI_AS
Dari (Afghanistan)Dari (Afghanistan) 0x048c0x048c 0x048c0x048c Latin1_General_CI_AILatin1_General_CI_AI
Maldivien (Maldives)Divehi (Maldives) 0x04650x0465 0x04650x0465 Non disponible au niveau du serveurNot available at server level
Néerlandais (Belgique)Dutch (Belgium) 0x08130x0813 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Néerlandais (Pays-Bas)Dutch (Netherlands) 0x04130x0413 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Australie)English (Australia) 0x0c090x0c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Belize)English (Belize) 0x28090x2809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Canada)English (Canada) 0x10090x1009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Caraïbes)English (Caribbean) 0x24090x2409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Inde)English (India) 0x40090x4009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Irlande)English (Ireland) 0x18090x1809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Jamaïque)English (Jamaica) 0x20090x2009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Malaisie)English (Malaysia) 0x44090x4409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Nouvelle-Zélande)English (New Zealand) 0x14090x1409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Philippines)English (Philippines) 0x34090x3409 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Singapour)English (Singapore) 0x48090x4809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Afrique du Sud)English (South Africa) 0x1c090x1c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Trinidad-et-Tobago)English (Trinidad and Tobago) 0x2c090x2c09 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (Royaume-Uni)English (United Kingdom) 0x08090x0809 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Anglais (États-Unis)English (United States) 0x04090x0409 0x04090x0409 SQL_Latin1_General_CP1_CI_ASSQL_Latin1_General_CP1_CI_AS
Anglais (Zimbabwe)English (Zimbabwe) 0x30090x3009 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Estonien (Estonie)Estonian (Estonia) 0x04250x0425 0x04250x0425 Estonian_CI_ASEstonian_CI_AS
Féroïen (Îles Féroé)Faroese (Faroe Islands) 0x04380x0438 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Filipino (Philippines)Filipino (Philippines) 0x04640x0464 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Finnois (Finlande)Finnish (Finland) 0x040b0x040b 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
Français (Belgique)French (Belgium) 0x080c0x080c 0x040c0x040c French_CI_ASFrench_CI_AS
Français (Canada)French (Canada) 0x0c0c0x0c0c 0x040c0x040c French_CI_ASFrench_CI_AS
Français (France)French (France) 0x040c0x040c 0x040c0x040c French_CI_ASFrench_CI_AS
Français (Luxembourg)French (Luxembourg) 0x140c0x140c 0x040c0x040c French_CI_ASFrench_CI_AS
Français (Monaco)French (Monaco) 0x180c0x180c 0x040c0x040c French_CI_ASFrench_CI_AS
Français (Suisse)French (Switzerland) 0x100c0x100c 0x040c0x040c French_CI_ASFrench_CI_AS
Frison (Pays-Bas)Frisian (Netherlands) 0x04620x0462 0x04620x0462 Latin1_General_CI_AILatin1_General_CI_AI
Galicien (Espagne)Galician (Spain) 0x04560x0456 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Géorgien (Géorgie)Georgian (Georgia) 0x104370x10437 0x104370x10437 Georgian_Modern_Sort_CI_ASGeorgian_Modern_Sort_CI_AS
Géorgien (Géorgie)Georgian (Georgia) 0x04370x0437 0x04190x0419 Latin1_General_CI_ASLatin1_General_CI_AS
Allemand - Annuaire téléphonique (DIN)German - Phone Book Sort (DIN) 0x104070x10407 0x104070x10407 German_PhoneBook_CI_ASGerman_PhoneBook_CI_AS
Allemand (Autriche)German (Austria) 0x0c070x0c07 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Allemand (Allemagne)German (Germany) 0x04070x0407 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Allemand (Liechtenstein)German (Liechtenstein) 0x14070x1407 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Allemand (Luxembourg)German (Luxembourg) 0x10070x1007 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Allemand (Suisse)German (Switzerland) 0x08070x0807 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Grec (Grèce)Greek (Greece) 0x04080x0408 0x04080x0408 Greek_CI_ASGreek_CI_AS
Groenlandais (Groenland)Greenlandic (Greenland) 0x046f0x046f 0x04060x0406 Danish_Norwegian_CI_ASDanish_Norwegian_CI_AS
Goudjrati (Inde)Gujarati (India) 0x04470x0447 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Haoussa (Nigeria, latin)Hausa (Nigeria, Latin) 0x04680x0468 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Hébreu (Israël)Hebrew (Israel) 0x040d0x040d 0x040d0x040d Hebrew_CI_ASHebrew_CI_AS
Hindi (Inde)Hindi (India) 0x04390x0439 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Hongrois (Hongrie)Hungarian (Hungary) 0x040e0x040e 0x040e0x040e Hungarian_CI_ASHungarian_CI_AS
Hongrois - TechniqueHungarian Technical Sort 0x1040e0x1040e 0x1040e0x1040e Hungarian_Technical_CI_ASHungarian_Technical_CI_AS
Islandais (Islande)Icelandic (Iceland) 0x040f0x040f 0x040f0x040f Icelandic_CI_ASIcelandic_CI_AS
Igbo (Nigeria)Igbo (Nigeria) 0x04700x0470 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Indonésien (Indonésie)Indonesian (Indonesia) 0x04210x0421 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inuktitut (Canada, latin)Inuktitut (Canada, Latin) 0x085d0x085d 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Inuktitut (syllabique, Canada)Inuktitut (Syllabics) Canada 0x045d0x045d 0x045d0x045d Latin1_General_CI_AILatin1_General_CI_AI
Irlandais (Irlande)Irish (Ireland) 0x083c0x083c 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Italien (Italie)Italian (Italy) 0x04100x0410 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Italien (Suisse)Italian (Switzerland) 0x08100x0810 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Japonais (Japon XJIS)Japanese (Japan XJIS) 0x04110x0411 0x04110x0411 Japanese_CI_ASJapanese_CI_AS
Japonais (Japon)Japanese (Japan) 0x0404110x040411 0x404110x40411 Latin1_General_CI_AILatin1_General_CI_AI
Kannada (Inde)Kannada (India) 0x044b0x044b 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Kazakh (Kazakhstan)Kazakh (Kazakhstan) 0x043f0x043f 0x043f0x043f Kazakh_90_CI_ASKazakh_90_CI_AS
Khmer (Cambodge)Khmer (Cambodia) 0x04530x0453 0x04530x0453 Non disponible au niveau du serveurNot available at server level
Quiché (Guatemala)K'iche (Guatemala) 0x04860x0486 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Kinyarwanda (Rwanda)Kinyarwanda (Rwanda) 0x04870x0487 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Konkani (Inde)Konkani (India) 0x04570x0457 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Coréen (Corée - Dictionnaire)Korean (Korea Dictionary Sort) 0x04120x0412 0x04120x0412 Korean_Wansung_CI_ASKorean_Wansung_CI_AS
Kirghize (Kirghizistan)Kyrgyz (Kyrgyzstan) 0x04400x0440 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Lao (RDP Lao)Lao (Lao PDR) 0x04540x0454 0x04540x0454 Non disponible au niveau du serveurNot available at server level
Letton (Lettonie)Latvian (Latvia) 0x04260x0426 0x04260x0426 Latvian_CI_ASLatvian_CI_AS
Lituanien (Lituanie)Lithuanian (Lithuania) 0x04270x0427 0x04270x0427 Lithuanian_CI_ASLithuanian_CI_AS
Bas-sorabe (Allemagne)Lower Sorbian (Germany) 0x082e0x082e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Luxembourgeois (Luxembourg)Luxembourgish (Luxembourg) 0x046e0x046e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Macédonien (Ex-Rép. yougoslave de Macédoine)Macedonian (Macedonia, FYROM) 0x042f0x042f 0x042f0x042f Macedonian_FYROM_90_CI_ASMacedonian_FYROM_90_CI_AS
Malais (Brunéi Darussalam)Malay (Brunei Darussalam) 0x083e0x083e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Malais (Malaisie)Malay (Malaysia) 0x043e0x043e 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Malayalam (Inde)Malayalam (India) 0x044c0x044c 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Maltais (Malte)Maltese (Malta) 0x043a0x043a 0x043a0x043a Latin1_General_CI_AILatin1_General_CI_AI
Maori (Nouvelle-Zélande)Maori (New Zealand) 0x04810x0481 0x04810x0481 Latin1_General_CI_AILatin1_General_CI_AI
Mapuche (Chili)Mapudungun (Chile) 0x047a0x047a 0x047a0x047a Latin1_General_CI_AILatin1_General_CI_AI
Marathi (Inde)Marathi (India) 0x044e0x044e 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Mohawk (Canada)Mohawk (Canada) 0x047c0x047c 0x047c0x047c Latin1_General_CI_AILatin1_General_CI_AI
Mongol (Mongolie)Mongolian (Mongolia) 0x04500x0450 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Mongol (République populaire de Chine)Mongolian (PRC) 0x08500x0850 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Népalais (Népal)Nepali (Nepal) 0x04610x0461 0x04610x0461 Non disponible au niveau du serveurNot available at server level
Norvégien (bokmål, Norvège)Norwegian (Bokmål, Norway) 0x04140x0414 0x04140x0414 Latin1_General_CI_AILatin1_General_CI_AI
Norvégien (Nynorsk, Norvège)Norwegian (Nynorsk, Norway) 0x08140x0814 0x04140x0414 Latin1_General_CI_AILatin1_General_CI_AI
Occitan (France)Occitan (France) 0x04820x0482 0x040c0x040c French_CI_ASFrench_CI_AS
Oriya (Inde)Oriya (India) 0x04480x0448 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Pachtou (Afghanistan)Pashto (Afghanistan) 0x04630x0463 0x04630x0463 Non disponible au niveau du serveurNot available at server level
Persan (Iran)Persian (Iran) 0x04290x0429 0x04290x0429 Latin1_General_CI_AILatin1_General_CI_AI
Polonais (Pologne)Polish (Poland) 0x04150x0415 0x04150x0415 Polish_CI_ASPolish_CI_AS
Portugais (Brésil)Portuguese (Brazil) 0x04160x0416 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Portugais (Portugal)Portuguese (Portugal) 0x08160x0816 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Pendjabi (Inde)Punjabi (India) 0x04460x0446 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Quechua (Bolivie)Quechua (Bolivia) 0x046b0x046b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Quechua (Équateur)Quechua (Ecuador) 0x086b0x086b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Quechua (Pérou)Quechua (Peru) 0x0c6b0x0c6b 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Roumain (Roumanie)Romanian (Romania) 0x04180x0418 0x04180x0418 Romanian_CI_ASRomanian_CI_AS
Romanche (Suisse)Romansh (Switzerland) 0x04170x0417 0x04170x0417 Latin1_General_CI_AILatin1_General_CI_AI
Russe (Russie)Russian (Russia) 0x04190x0419 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Same d'Inari (Finlande)Sami (Inari, Finland) 0x243b0x243b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sami (Lule, Norvège)Sami (Lule, Norway) 0x103b0x103b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
Same de Lule (Suède)Sami (Lule, Sweden) 0x143b0x143b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Same du nord (Finlande)Sami (Northern, Finland) 0x0c3b0x0c3b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Same du nord (Norvège)Sami (Northern, Norway) 0x043b0x043b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
Same du nord (Suède)Sami (Northern, Sweden) 0x083b0x083b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Same de Skolt (Finlande)Sami (Skolt, Finland) 0x203b0x203b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Same du sud (Norvège)Sami (Southern, Norway) 0x183b0x183b 0x043b0x043b Latin1_General_CI_AILatin1_General_CI_AI
Same du sud (Suède)Sami (Southern, Sweden) 0x1c3b0x1c3b 0x083b0x083b Latin1_General_CI_AILatin1_General_CI_AI
Sanskrit (Inde)Sanskrit (India) 0x044f0x044f 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Serbe (Bosnie-Herzégovine, cyrillique)Serbian (Bosnia and Herzegovina, Cyrillic) 0x1c1a0x1c1a 0x0c1a0x0c1a Latin1_General_CI_AILatin1_General_CI_AI
Serbe (Bosnie-Herzégovine, latin)Serbian (Bosnia and Herzegovina, Latin) 0x181a0x181a 0x081a0x081a Latin1_General_CI_AILatin1_General_CI_AI
Serbe (Serbie, cyrillique)Serbian (Serbia, Cyrillic) 0x0c1a0x0c1a 0x0c1a0x0c1a Latin1_General_CI_AILatin1_General_CI_AI
Serbe (latin, Serbie)Serbian (Serbia, Latin) 0x081a0x081a 0x081a0x081a Latin1_General_CI_AILatin1_General_CI_AI
Sesotho sa Leboa/Sotho du Nord (Afrique du Sud)Sesotho sa Leboa/Northern Sotho (South Africa) 0x046c0x046c 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Setswana/Tswana (Afrique du Sud)Setswana/Tswana (South Africa) 0x04320x0432 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Cingalais (Sri Lanka)Sinhala (Sri Lanka) 0x045b0x045b 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Slovaque (Slovaquie)Slovak (Slovakia) 0x041b0x041b 0x041b0x041b Slovak_CI_ASSlovak_CI_AS
Slovène (Slovénie)Slovenian (Slovenia) 0x04240x0424 0x04240x0424 Slovenian_CI_ASSlovenian_CI_AS
Espagnol (Argentine)Spanish (Argentina) 0x2c0a0x2c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Bolivie)Spanish (Bolivia) 0x400a0x400a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Chili)Spanish (Chile) 0x340a0x340a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Colombie)Spanish (Colombia) 0x240a0x240a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Costa Rica)Spanish (Costa Rica) 0x140a0x140a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (République dominicaine)Spanish (Dominican Republic) 0x1c0a0x1c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Équateur)Spanish (Ecuador) 0x300a0x300a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Salvador)Spanish (El Salvador) 0x440a0x440a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Guatemala)Spanish (Guatemala) 0x100a0x100a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Honduras)Spanish (Honduras) 0x480a0x480a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Mexique)Spanish (Mexico) 0x080a0x080a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Nicaragua)Spanish (Nicaragua) 0x4c0a0x4c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Panama)Spanish (Panama) 0x180a0x180a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Paraguay)Spanish (Paraguay) 0x3c0a0x3c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Pérou)Spanish (Peru) 0x280a0x280a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Porto Rico)Spanish (Puerto Rico) 0x500a0x500a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Espagne)Spanish (Spain) 0x0c0a0x0c0a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Espagne, traditionnel)Spanish (Spain, Traditional Sort) 0x040a0x040a 0x040a0x040a Traditional_Spanish_CI_ASTraditional_Spanish_CI_AS
Espagnol (États-Unis)Spanish (United States) 0x540a0x540a 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Espagnol (Uruguay)Spanish (Uruguay) 0x380a0x380a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Espagnol (Venezuela)Spanish (Venezuela) 0x200a0x200a 0x0c0a0x0c0a Modern_Spanish_CI_ASModern_Spanish_CI_AS
Swahili (Kenya)Swahili (Kenya) 0x04410x0441 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Suédois (Finlande)Swedish (Finland) 0x081d0x081d 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
Suédois (Suède)Swedish (Sweden) 0x041d0x041d 0x040b0x040b Finnish_Swedish_CI_ASFinnish_Swedish_CI_AS
Syriaque (Syrie)Syriac (Syria) 0x045a0x045a 0x045a0x045a Non disponible au niveau du serveurNot available at server level
Tadjik (Tadjikistan)Tajik (Tajikistan) 0x04280x0428 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Tamazight (Algérie, latin)Tamazight (Algeria, Latin) 0x085f0x085f 0x085f0x085f Latin1_General_CI_AILatin1_General_CI_AI
Tamoul (Inde)Tamil (India) 0x04490x0449 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Tatar (Russie)Tatar (Russia) 0x04440x0444 0x04440x0444 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Télougou (Inde)Telugu (India) 0x044a0x044a 0x04390x0439 Non disponible au niveau du serveurNot available at server level
Thaï (Thaïlande)Thai (Thailand) 0x041e0x041e 0x041e0x041e Thai_CI_ASThai_CI_AS
Tibétain (RPC)Tibetan (PRC) 0x04510x0451 0x04510x0451 Non disponible au niveau du serveurNot available at server level
Turc (Turquie)Turkish (Turkey) 0x041f0x041f 0x041f0x041f Turkish_CI_ASTurkish_CI_AS
Turkmène (Turkménistan)Turkmen (Turkmenistan) 0x04420x0442 0x04420x0442 Latin1_General_CI_AILatin1_General_CI_AI
Ouïgour (RPC)Uighur (PRC) 0x04800x0480 0x04800x0480 Latin1_General_CI_AILatin1_General_CI_AI
Ukrainien (Ukraine)Ukrainian (Ukraine) 0x04220x0422 0x04220x0422 Ukrainian_CI_ASUkrainian_CI_AS
Haut-sorabe (Allemagne)Upper Sorbian (Germany) 0x042e0x042e 0x042e0x042e Latin1_General_CI_AILatin1_General_CI_AI
Ourdou (Pakistan)Urdu (Pakistan) 0x04200x0420 0x04200x0420 Latin1_General_CI_AILatin1_General_CI_AI
Ouzbek (Ouzbékistan, cyrillique)Uzbek (Uzbekistan, Cyrillic) 0x08430x0843 0x04190x0419 Cyrillic_General_CI_ASCyrillic_General_CI_AS
Ouzbek (Ouzbékistan, latin)Uzbek (Uzbekistan, Latin) 0x04430x0443 0x04430x0443 Uzbek_Latin_90_CI_ASUzbek_Latin_90_CI_AS
Vietnamien (Vietnam)Vietnamese (Vietnam) 0x042a0x042a 0x042a0x042a Vietnamese_CI_ASVietnamese_CI_AS
Gallois (Royaume-Uni)Welsh (United Kingdom) 0x04520x0452 0x04520x0452 Latin1_General_CI_AILatin1_General_CI_AI
Wolof (Sénégal)Wolof (Senegal) 0x04880x0488 0x040c0x040c French_CI_ASFrench_CI_AS
Xhosa (Afrique du Sud)Xhosa/isiXhosa (South Africa) 0x04340x0434 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Iakoute (Russie)Yakut (Russia) 0x04850x0485 0x04850x0485 Latin1_General_CI_AILatin1_General_CI_AI
Yi (RPC)Yi (PRC) 0x04780x0478 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Yoruba (Nigeria)Yoruba (Nigeria) 0x046a0x046a 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS
Zoulou (Afrique du Sud)Zulu/isiZulu (South Africa) 0x04350x0435 0x04090x0409 Latin1_General_CI_ASLatin1_General_CI_AS

Notes

Les classements Unicode uniquement ne peuvent pas être sélectionnés lors de l’installation de SQL ServerSQL Server, car ils ne sont pas pris en charge en tant que classements au niveau du serveur.Unicode-only collations can't be selected during SQL ServerSQL Server setup, because they aren't supported as server-level collations.

Une fois que vous avez affecté un classement au serveur, vous pouvez le modifier uniquement en exportant la totalité des objets et des données de la base de données, en reconstruisant la base de données master et en important la totalité des objets et des données de la base de données.After you've assigned a collation to the server, you can change it only by exporting all database objects and data, rebuilding the master database, and importing all database objects and data. Au lieu de modifier le classement par défaut d’une instance SQL ServerSQL Server, vous pouvez spécifier le classement désiré quand vous créez une nouvelle base de données ou colonne de base de données.Instead of changing the default collation of an instance of SQL ServerSQL Server, you can specify the desired collation when you create a new database or database column.

Pour demander le classement du serveur pour une instance SQL ServerSQL Server, utilisez la fonction SERVERPROPERTY :To query the server collation for an instance of SQL ServerSQL Server, use the SERVERPROPERTY function:

SELECT CONVERT(varchar, SERVERPROPERTY('collation'));

Pour demander au serveur tous les classements disponibles, utilisez la fonction intégrée fn_helpcollations() suivante :To query the server for all available collations, use the following fn_helpcollations() built-in function:

SELECT * FROM sys.fn_helpcollations();

Classements au niveau de la base de donnéesDatabase-level collations

Lorsque vous créez ou modifiez une base de données, vous pouvez utiliser la clause COLLATE de l’instruction CREATE DATABASE ou ALTER DATABASE pour spécifier le classement par défaut de la base de données.When you create or modify a database, you can use the COLLATE clause of the CREATE DATABASE or ALTER DATABASE statement to specify the default database collation. Si aucun classement n'est spécifié, le classement du serveur est affecté à la base de données.If no collation is specified, the database is assigned the server collation.

Vous ne pouvez pas modifier le classement des bases de données système, à moins de modifier le classement du serveur.You can't change the collation of system databases unless you change the collation for the server.

Le classement de la base de données est utilisé pour toutes les métadonnées de la base de données. Il constitue le classement par défaut pour l’ensemble des colonnes de chaîne, des objets temporaires, des noms de variable et des autres chaînes utilisées dans la base de données.The database collation is used for all metadata in the database, and the collation is the default for all string columns, temporary objects, variable names, and any other strings used in the database. Quand vous modifiez le classement d'une base de données utilisateur, des conflits de classement risquent de se produire quand des requêtes de la base de données accèdent à des tables temporaires.When you change the collation of a user database, there can be collation conflicts when queries in the database access temporary tables. Les tables temporaires sont toujours stockées dans la base de données système tempdb, qui utilise le classement de l’instance.Temporary tables are always stored in the tempdb system database, which uses the collation for the instance. Les requêtes qui comparent les données caractères entre la base de données utilisateur et tempdb risquent d’échouer si les classements génèrent un conflit lors de l’évaluation des données caractères.Queries that compare character data between the user database and tempdb might fail if the collations cause a conflict in evaluating the character data. Vous pouvez résoudre ce problème en spécifiant la clause COLLATE dans la requête.You can resolve this issue by specifying the COLLATE clause in the query. Pour plus d’informations, consultez COLLATE (Transact-SQL).For more information, see COLLATE (Transact-SQL).

Notes

Vous ne pouvez pas modifier le classement une fois que la base de données a été créée dans Azure SQL DatabaseAzure SQL Database.You can't change the collation after the database has been created on Azure SQL DatabaseAzure SQL Database.

Vous pouvez modifier le classement d’une base de données utilisateur avec une instruction ALTER DATABASE similaire à celle-ci :You can change the collation of a user database by using an ALTER DATABASE statement that's similar to the following:

ALTER DATABASE myDB COLLATE Greek_CS_AI;

Important

Le fait de changer le classement au niveau de la base de données n’affecte pas les classements au niveau des expressions ou des colonnes.Altering the database-level collation doesn't affect column-level or expression-level collations.

Vous pouvez récupérer le classement actuel d’une base de données à l’aide d’une instruction semblable à la suivante :You can retrieve the current collation of a database by using a statement that's similar to the following:

SELECT CONVERT (VARCHAR(50), DATABASEPROPERTYEX('database_name','collation'));

Classements au niveau des colonnesColumn-level collations

Lorsque vous créez ou modifiez une table, vous pouvez spécifier des classements pour chaque colonne de chaîne de caractères à l’aide de la clause COLLATE.When you create or alter a table, you can specify collations for each character-string column by using the COLLATE clause. Si vous ne spécifiez pas de classement, le classement par défaut de la base de données est appliqué à la colonne.If you don't specify a collation, the column is assigned the default collation of the database.

Vous pouvez modifier le classement d’une colonne avec une instruction ALTER TABLE similaire à celle-ci :You can change the collation of a column by using an ALTER TABLE statement that's similar to the following:

ALTER TABLE myTable ALTER COLUMN mycol NVARCHAR(10) COLLATE Greek_CS_AI;

Classements au niveau de l’expressionExpression-level collations

Les classements au niveau de l'expression sont définis lors de l'exécution d'une instruction et ils affectent la façon dont l'ensemble de résultats est retourné.Expression-level collations are set when a statement is run, and they affect the way a result set is returned. Cela permet aux résultats de tri ORDER BY d’être spécifiques aux paramètres régionaux.This enables ORDER BY sort results to be locale-specific. Pour implémenter les classements au niveau de l’expression, utilisez une clause COLLATE telle que la suivante :To implement expression-level collations, use a COLLATE clause such as the following:

SELECT name FROM customer ORDER BY name COLLATE Latin1_General_CS_AI;    

Paramètres régionauxLocale

Les paramètres régionaux sont un ensemble d’informations associées à un emplacement ou à une culture.A locale is a set of information that's associated with a location or a culture. Il peut s’agir du nom et de l’identificateur de la langue parlée, du script utilisé pour écrire la langue et des conventions culturelles.The information can include the name and identifier of the spoken language, the script that's used to write the language, and cultural conventions. Les classements peuvent être associés à un ou plusieurs ensembles de paramètres régionaux.Collations can be associated with one or more locales. Pour plus d'informations, consultez Locale IDs Assigned by Microsoft (en anglais).For more information, see Locale IDs Assigned by Microsoft.

Page de codesCode page

Une page de codes est le jeu ordonné de caractères d'un script donné dans lequel un index numérique (ou une valeur de point de code) est associé à chaque caractère.A code page is an ordered set of characters of a given script in which a numeric index, or code point value, is associated with each character. Une page de codes Windows est généralement appelée jeu de caractères ou charset.A Windows code page is typically referred to as a character set or a charset. Les pages de codes permettent d'assurer la prise en charge des jeux de caractères et des dispositions du clavier utilisés par différents paramètres régionaux système Windows.Code pages are used to provide support for the character sets and keyboard layouts that are used by different Windows system locales.

Ordre de triSort order

L'ordre de tri spécifie comment sont triées les valeurs de données.Sort order specifies how data values are sorted. Il affecte les résultats de comparaison de données.The order affects the results of data comparison. Les données sont triées en utilisant les classements et peuvent être optimisées à l'aide des index.Data is sorted by using collations, and it can be optimized by using indexes.

Prise en charge d’UnicodeUnicode support

Unicode est un standard en matière de correspondance de points de code avec des caractères.Unicode is a standard for mapping code points to characters. Comme il est conçu pour couvrir tous les caractères de toutes les langues du monde, vous n’avez pas besoin de pages de codes différentes pour gérer des jeux de caractères différents.Because it's designed to cover all the characters of all the languages of the world, you don't need different code pages to handle different sets of characters.

Concepts de base d’UnicodeUnicode basics

Le stockage de données en plusieurs langues dans une même base de données est délicat à gérer quand vous utilisez seulement des données de type caractère et des pages de codes.Storing data in multiple languages within one database is difficult to manage when you use only character data and code pages. Il est également difficile de trouver une page de codes capable de stocker tous les caractères nécessaires spécifiques aux différentes langues.It's also difficult to find one code page for the database that can store all the required language-specific characters. De plus, il est difficile de garantir que les caractères spéciaux sont lus ou mis à jour correctement par différents clients exécutant des pages de codes différentes.Additionally, it's difficult to guarantee the correct translation of special characters when they're being read or updated by a variety of clients that are running various code pages. Les bases de données qui prennent en charge des clients internationaux doivent toujours utiliser les types de données Unicode au lieu de types de données non-Unicode.Databases that support international clients should always use Unicode data types instead of non-Unicode data types.

Prenons par exemple une base de données de clients en Amérique du Nord qui doit prendre en charge trois langues principales :For example, consider a database of customers in North America that must handle three major languages:

  • des noms et des adresses en espagnol pour le MexiqueSpanish names and addresses for Mexico
  • des noms et des adresses en français pour le QuébecFrench names and addresses for Quebec
  • des noms et des adresses en anglais pour les autres régions du Canada et les États-UnisEnglish names and addresses for the rest of Canada and the United States

Quand vous utilisez seulement des colonnes de caractères et des pages de codes, vous devez veiller à ce que la base de données soit installée avec une page de codes capable de gérer les caractères des trois langues.When you use only character columns and code pages, you must take care to ensure that the database is installed with a code page that will handle the characters of all three languages. Vous devez aussi faire en sorte de garantir la traduction correcte des caractères d’une des langues quand ils sont lus par des clients exécutant une page de codes pour une autre langue.You must also take care to guarantee the correct translation of characters from any of the languages when the characters are read by clients that are running a code page for another language.

Notes

Les pages de codes utilisées par un client sont déterminées par les paramètres du système d’exploitation.The code pages that a client uses are determined by the operating system (OS) settings. Pour définir les pages de codes du client sur le système d'exploitation Windows, utilisez Paramètres régionaux dans le Panneau de configuration.To set client code pages on the Windows operating system, use Regional Settings in Control Panel.

Il est difficile de sélectionner une page de codes pour des types de données caractères qui va prendre en charge tous les caractères requis pour une audience internationale.It would be difficult to select a code page for character data types that will support all the characters that are required by a worldwide audience. Le moyen le plus simple de gérer les données de type caractère dans les bases de données internationales est de toujours utiliser un type de données qui prend en charge Unicode.The easiest way to manage character data in international databases is to always use a data type that supports Unicode.

Types de données UnicodeUnicode data types

Si vous stockez des données caractères qui reflètent plusieurs langues dans SQL ServerSQL Server (de SQL Server 2005 (9.x)SQL Server 2005 (9.x) à SQL ServerSQL Server), utilisez des types de données Unicode (nchar, nvarchar et ntext) au lieu de types de données non-Unicode (char, varchar et text).If you store character data that reflects multiple languages in SQL ServerSQL Server (SQL Server 2005 (9.x)SQL Server 2005 (9.x) through SQL ServerSQL Server), use Unicode data types (nchar, nvarchar, and ntext) instead of non-Unicode data types (char, varchar, and text).

Notes

Pour les types de données Unicode, le Moteur de base de donnéesDatabase Engine peut représenter jusqu'à 65 535 caractères à l’aide de UCS-2 ou la plage Unicode complète (1 114 111 caractères) si les caractères supplémentaires sont utilisés.For Unicode data types, the Moteur de base de donnéesDatabase Engine can represent up to 65,535 characters using UCS-2, or the full Unicode range (‭1,114,111‬ characters) if supplementary characters are used. Pour plus d’informations sur l’activation de caractères supplémentaires, consultez Caractères supplémentaires.For more information about enabling supplementary characters, see Supplementary Characters.

D’autre part, à compter de SQL Server 2019 (15.x)SQL Server 2019 (15.x), si un classement compatible UTF-8 (_UTF8) est utilisé, les types de données qui étaient auparavant non-Unicode (char et varchar) deviennent des types de données Unicode (UTF-8).Alternatively, starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x), if a UTF-8 enabled collation (_UTF8) is used, previously non-Unicode data types (char and varchar) become Unicode (UTF-8) data types. SQL Server 2019 (15.x)SQL Server 2019 (15.x) ne change pas le comportement des types de données Unicode (UTF-16) existants (nchar, nvarchar et ntext).doesn't change the behavior of previously existing Unicode (UTF-16) data types (nchar, nvarchar, and ntext). Pour plus d’informations, consultez Différences de stockage entre UTF-8 et UTF-16.For more information, see Storage differences between UTF-8 and UTF-16.

Considérations relatives à UnicodeUnicode considerations

Des limitations significatives sont associées aux types de données non-Unicode.Significant limitations are associated with non-Unicode data types. C’est parce qu’un ordinateur non-Unicode ne peut utiliser qu’une seule page de codes.This is because a non-Unicode computer is limited to using a single code page. Vous pouvez bénéficier de gains de performances en utilisant Unicode, car il requiert moins de conversions de page de codes.You might experience performance gain by using Unicode, because it requires fewer code-page conversions. Les classements Unicode doivent être sélectionnés individuellement au niveau de la base de données, de la colonne ou de l’expression parce qu’ils ne sont pas pris en charge au niveau du serveur.Unicode collations must be selected individually at the database, column, or expression level because they aren't supported at the server level.

Lorsque vous déplacez des données d'un serveur vers un client, votre classement du serveur peut ne pas être reconnu par les pilotes de clients plus anciens.When you move data from a server to a client, your server collation might not be recognized by older client drivers. Cela peut se produire lorsque vous déplacez des données d'un serveur Unicode vers un client non-Unicode.This can occur when you move data from a Unicode server to a non-Unicode client. La meilleure solution peut alors consister à mettre à niveau le système d'exploitation du client afin de mettre aussi à jour les classements du système sous-jacent.Your best option might be to upgrade the client operating system so that the underlying system collations are updated. Si le client est équipé du logiciel client de base de données, vous pouvez envisager de lui appliquer une mise à jour du service.If the client has database client software installed, you might consider applying a service update to the database client software.

Conseil

Vous pouvez également essayer d'utiliser un autre classement pour les données du serveur.You can also try to use a different collation for the data on the server. Choisissez un classement qui établit un mappage à une page de codes du client.Choose a collation that maps to a code page on the client.

Pour utiliser les classements UTF-16 disponibles dans SQL ServerSQL Server (de SQL Server 2012 (11.x)SQL Server 2012 (11.x) à SQL ServerSQL Server) afin d’améliorer la recherche et le tri de certains caractères Unicode (classements Windows uniquement), vous pouvez sélectionner un des classements (_SC) de caractères supplémentaires ou un des classements de la version 140.To use the UTF-16 collations that are available in SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL ServerSQL Server) to improve searching and sorting of some Unicode characters (Windows collations only), you can select either one of the supplementary characters (_SC) collations or one of the version 140 collations.

Pour utiliser les classements UTF-8 disponibles dans SQL Server 2019 (15.x)SQL Server 2019 (15.x) et améliorer la recherche et le tri de certains caractères Unicode (classements Windows uniquement), vous devez sélectionner des classements compatibles avec l’encodage UTF-8 (_UTF8).To use the UTF-8 collations that are available in SQL Server 2019 (15.x)SQL Server 2019 (15.x), and to improve searching and sorting of some Unicode characters (Windows collations only), you must select UTF-8 encoding-enabled collations(_UTF8).

  • L’indicateur UTF8 peut être appliqué aux éléments suivants :The UTF8 flag can be applied to:

    • Classements version 90Version 90 collations

      Notes

      Seulement quand des caractères supplémentaires (_SC) ou des classements compatibles avec le respect du sélecteur de variante (_VSS) existent déjà dans cette version.Only when supplementary characters (_SC) or variation-selector-sensitive (_VSS) aware collations already exist in this version.

    • Classements version 100Version 100 collations
    • Classements version 140Version 140 collations
    • BIN21 classement binaireBIN21 binary collation
  • L’indicateur UTF8 ne peut pas être appliqué aux éléments suivants :The UTF8 flag can't be applied to:

    • Classements version 90 qui ne prennent pas en charge les caractères supplémentaires (_SC) ou le respect du sélecteur de variante (_VSS)Version 90 collations that don't support supplementary characters (_SC) or variation-selector-sensitive (_VSS)
    • Classements binaires BIN ou BIN22The BIN or BIN22 binary collations
    • Classements SQL_*The SQL_* collations

1 À compter de SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3.1 Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3. SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 3.0 a remplacé le classement UTF8_BIN2 par Latin1_General_100_BIN2_UTF8.CTP 3.0 replaced collation UTF8_BIN2 with Latin1_General_100_BIN2_UTF8.
2 Jusqu’à SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3.2 Up to with SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 2.3.

Pour déterminer les problèmes qui sont liés à l'utilisation des types de données Unicode ou non-Unicode, testez votre scénario pour mesurer les écarts de performances dans votre environnement.To evaluate issues that are related to using Unicode or non-Unicode data types, test your scenario to measure performance differences in your environment. Il est recommandé de normaliser le classement utilisé sur les systèmes de votre organisation et de déployer des serveurs et clients Unicode partout où vous le pouvez.It's a good practice to standardize the collation that's used on systems across your organization, and to deploy Unicode servers and clients wherever possible.

Dans de nombreuses situations, SQL ServerSQL Server interagit avec d’autres serveurs ou clients, et votre organisation peut utiliser plusieurs normes d’accès aux données entre les applications et les instances de serveur.In many situations, SQL ServerSQL Server interacts with other servers or clients, and your organization might use multiple data-access standards between applications and server instances. Les clientsSQL ServerSQL Server sont l'un des deux types principaux :SQL ServerSQL Server clients are one of two main types:

  • Les clients Unicode qui utilisent OLE DB et ODBC (Open Database Connectivity) version 3.7 ou ultérieure.Unicode clients that use OLE DB and Open Database Connectivity (ODBC) version 3.7 or later.
  • Les clients non-Unicode qui utilisent DB-Library et ODBC version 3.6 ou antérieure.Non-Unicode clients that use DB-Library and ODBC version 3.6 or earlier.

Le tableau suivant présente des informations sur l’utilisation des données multilingues avec diverses combinaisons de serveurs Unicode et non-Unicode :The following table provides information about using multilingual data with various combinations of Unicode and non-Unicode servers:

ServeurServer ClientClient Avantages ou restrictionsBenefits or limitations
UnicodeUnicode UnicodeUnicode Comme les données Unicode sont utilisées dans tout le système, ce scénario fournit les meilleures performances et la meilleure protection contre l’altération des données récupérées.Because Unicode data is used throughout the system, this scenario provides the best performance and protection from corruption of retrieved data. C’est le cas avec ActiveX Data Objects (ADO), OLE DB et ODBC version 3.7 ou ultérieure.This is the situation with ActiveX Data Objects (ADO), OLE DB, and ODBC version 3.7 or later.
UnicodeUnicode Non-UnicodeNon-Unicode Dans ce scénario, et surtout avec les connexions entre un serveur exécutant un système d’exploitation récent et un client exécutant une version antérieure de SQL ServerSQL Server, ou un système d’exploitation plus ancien, il peut y avoir des limitations ou des erreurs lorsque vous déplacez des données vers un ordinateur client.In this scenario, especially with connections between a server that's running a newer operating system and a client that's running an earlier version of SQL ServerSQL Server, or on an older operating system, there can be limitations or errors when you move data to a client computer. Les données Unicode sur le serveur tentent d’établir un mappage à une page de codes correspondante sur le client non-Unicode afin de convertir les données.Unicode data on the server tries to map to a corresponding code page on the non-Unicode client to convert the data.
Non-UnicodeNon-Unicode UnicodeUnicode Cette configuration n’est pas idéale pour l’utilisation de données multilingues.This isn't an ideal configuration for using multilingual data. Vous ne pouvez pas écrire des données Unicode sur le serveur non-Unicode.You can't write Unicode data to the non-Unicode server. Des problèmes peuvent survenir lorsque les données sont envoyées à des serveurs qui sont en dehors de la page de codes du serveur.Problems are likely to occur when data is sent to servers that are outside the server's code page.
Non-UnicodeNon-Unicode Non-UnicodeNon-Unicode Cette configuration est la plus limitée pour des données multilingues.This is a very limiting scenario for multilingual data. Vous pouvez utiliser uniquement une seule page de codes.You can use only a single code page.

Caractères supplémentairesSupplementary characters

Le Consortium Unicode alloue à chaque caractère un point de code unique, qui est une valeur comprise entre 000000 et 10FFFF.The Unicode Consortium allocates to each character a unique code point, which is a value in the range 000000–10FFFF. Les caractères les plus fréquemment utilisés ont des valeurs de point de code dans la plage de 000000 à 00FFFF (65 535 caractères) qui correspondent à un mot de 8 ou 16 bits en mémoire et sur le disque.The most frequently used characters have code point values in the range 000000–00FFFF (65,535 characters) which fit into an 8-bit or 16-bit word in memory and on-disk. Cette plage est généralement désignée en tant que Plan multilingue de base (BMP).This range is usually designated as the Basic Multilingual Plane (BMP).

Mais le Consortium Unicode a établi des 16 « plans » de caractères supplémentaires, chacun ayant la même taille que le BMP.But the Unicode Consortium has established 16 additional "planes" of characters, each the same size as the BMP. Cette définition accorde à Unicode le potentiel de représenter 1 114 112 caractères (autrement dit, 216 * 17 caractères) au sein de la plage de point de code de 000000 à 10FFFF.This definition allows Unicode the potential to represent 1,114,112 characters (that is, 216 * 17 characters) within the code point range 000000–10FFFF. Les caractères dont les valeurs de code de caractère supérieures à 00FFFF requièrent entre deux et quatre mots de 8 bits consécutifs (UTF-8) ou deux mots de 16 bits consécutifs (UTF-16).Characters with code point values larger than 00FFFF require two to four consecutive 8-bit words (UTF-8), or two consecutive 16-bit words (UTF-16). Ces caractères situés au-delà du BMP sont appelés caractères supplémentaires et les deux mots de 8 ou 16 bits consécutifs supplémentaires sont appelés paires de substitution.These characters located beyond the BMP are called supplementary characters, and the additional consecutive 8-bit or 16-bit words are called surrogate pairs. Pour plus d’informations sur les caractères supplémentaires, les substitutions et les paires de substitution, reportez-vous à la norme Unicode.For more information about supplementary characters, surrogates, and surrogate pairs, refer to the Unicode Standard.

SQL ServerSQL Server fournit des types de données tels que nchar et nvarchar pour stocker les données Unicode dans la plage BMP (de 000000 à 00FFFF), ce que Moteur de base de donnéesDatabase Engine encode à l’aide d’UCS-2.provides data types such as nchar and nvarchar to store Unicode data in the BMP range (000000–00FFFF), which the Moteur de base de donnéesDatabase Engine encodes using UCS-2.

SQL Server 2012 (11.x)SQL Server 2012 (11.x) a introduit une nouvelle famille de classements de caractères supplémentaires (_SC) pouvant être utilisée avec les types de données nchar, nvarchar et sql_variant pour représenter la plage de caractères Unicode complète (de 000000 à 10FFFF).introduced a new family of supplementary character (_SC) collations that can be used with the nchar, nvarchar, and sql_variant data types to represent the full Unicode character range (000000–10FFFF). Par exemple : Latin1_General_100_CI_AS_SC ou, si vous utilisez un classement japonais, Japanese_Bushu_Kakusu_100_CI_AS_SC.For example: Latin1_General_100_CI_AS_SC or, if you're using a Japanese collation, Japanese_Bushu_Kakusu_100_CI_AS_SC.

SQL Server 2019 (15.x)SQL Server 2019 (15.x) étend la prise en charge des caractères supplémentaires aux types de données char et varchar avec les nouveaux classements prenant en charge UTF-8 (_UTF8).extends supplementary character support to the char and varchar data types with the new UTF-8 enabled collations (_UTF8). Ces types de données sont également capables de représenter la plage de caractères Unicode complète.These data types are also capable of representing the full Unicode character range.

Notes

À compter de SQL Server 2014 (12.x)SQL Server 2014 (12.x), tous les nouveaux classements _140 prennent en charge automatiquement les caractères supplémentaires.Starting with SQL Server 2014 (12.x)SQL Server 2014 (12.x), all new _140 collations automatically support supplementary characters.

Si vous utilisez des caractères supplémentaires :If you use supplementary characters:

  • Les caractères supplémentaires peuvent être utilisés dans des opérations de tri et de comparaison dans les versions de classement 90 ou versions supérieures.Supplementary characters can be used in ordering and comparison operations in collation versions 90 or greater.

  • Tous les classements version 100 prennent en charge le tri linguistique avec les caractères supplémentaires.All version 100 collations support linguistic sorting with supplementary characters.

  • Les caractères supplémentaires ne sont pas utilisables dans les métadonnées, telles que les noms d’objets de base de données.Supplementary characters aren't supported for use in metadata, such as in names of database objects.

  • Les bases de données qui utilisent des classements avec des caractères supplémentaires (_SC) ne peuvent pas être activées pour la réplication SQL ServerSQL Server.Databases that use collations with supplementary characters (_SC) can't be enabled for SQL ServerSQL Server Replication. C’est parce que certaines des tables système et des procédures stockées créées pour la réplication utilisent le type de données ntext hérité qui ne prend pas en charge les caractères supplémentaires.This is because some of the system tables and stored procedures that are created for replication use the legacy ntext data type, which doesn't support supplementary characters.

  • L’indicateur SC peut s’appliquer aux éléments suivants :The SC flag can be applied to:

    • Classements version 90Version 90 collations
    • Classements version 100Version 100 collations
  • L’indicateur SC ne peut pas s’appliquer aux éléments suivants :The SC flag can't be applied to:

    • Classements Windows version 80 et sans versionVersion 80 non-versioned Windows collations
    • Classements binaires BIN ou BIN2The BIN or BIN2 binary collations
    • Classements SQL*The SQL* collations
    • Classements version 140 (ces derniers n’ont pas besoin de l’indicateur SC, car ils prennent déjà en charge les caractères supplémentaires)Version 140 collations (these don't need the SC flag, because they already support supplementary characters)

Le tableau suivant compare le comportement de quelques fonctions de chaîne et opérateurs de chaîne quand ils utilisent des caractères supplémentaires avec et sans classement sensible aux caractères supplémentaires :The following table compares the behavior of some string functions and string operators when they use supplementary characters with and without a supplementary character-aware (SCA) collation:

Fonction de chaîne ou opérateurString function or operator Avec un classement sensible aux caractères supplémentairesWith an SCA collation Sans classement sensible aux caractères supplémentairesWithout an SCA collation
CHARINDEXCHARINDEX

LENLEN

PATINDEXPATINDEX
La paire de substitution UTF-16 est comptée comme un point de code unique.The UTF-16 surrogate pair is counted as a single code point. La paire de substitution UTF-16 est comptée comme deux points de code.The UTF-16 surrogate pair is counted as two code points.
LEFTLEFT

REPLACEREPLACE

REVERSEREVERSE

RIGHTRIGHT

SUBSTRINGSUBSTRING

STUFFSTUFF
Ces fonctions traitent chaque paire de substitution comme un point de code unique et fonctionnent comme prévu.These functions treat each surrogate pair as a single code point and work as expected. Ces fonctions peuvent fractionner toutes les paires de substitution et conduire à des résultats inattendus.These functions might split any surrogate pairs and lead to unexpected results.
NCHARNCHAR Retourne le caractère qui correspond à la valeur de point de code Unicode spécifiée dans la plage de 0 à 0x10FFFF.Returns the character that corresponds to the specified Unicode code point value in the range 0–0x10FFFF. Si la valeur spécifiée figure dans la plage de 0 à 0xFFFF, un seul caractère est retourné.If the specified value lies in the range 0–0xFFFF, one character is returned. Pour les valeurs plus élevées, la paire de substitution correspondante est retournée.For higher values, the corresponding surrogate is returned. Une valeur supérieure à 0xFFFF retourne NULL au lieu du substitut correspondant.A value higher than 0xFFFF returns NULL instead of the corresponding surrogate.
UNICODEUNICODE Retourne un point de code UTF-16 dans la plage de 0 à 0x10FFFF.Returns a UTF-16 code point in the range 0–0x10FFFF. Retourne un point de code UCS-2 dans la plage de 0 à 0xFFFF.Returns a UCS-2 code point in the range 0–0xFFFF.
Recherche de correspondance d’un seul caractère génériqueMatch One Character Wildcard

Caractère générique - Caractères à ne pas faire correspondreWildcard - Character(s) Not to Match
Les caractères supplémentaires sont pris en charge pour toutes les opérations génériques.Supplementary characters are supported for all wildcard operations. Les caractères supplémentaires ne sont pas pris en charge pour ces opérations génériques.Supplementary characters aren't supported for these wildcard operations. D'autres opérateurs génériques sont pris en charge.Other wildcard operators are supported.

Prise en charge de la norme GB18030GB18030 support

GB18030 est une norme distincte utilisée en République populaire de Chine pour l’encodage des caractères chinois.GB18030 is a separate standard that's used in the People's Republic of China for encoding Chinese characters. Dans la norme GB18030, les caractères peuvent être encodés sur 1, 2 ou 4 octets de longueur.In GB18030, characters can be 1, 2, or 4 bytes in length. Pour prendre en charge les caractères encodés selon la norme GB18030,SQL ServerSQL Server les reconnaît lorsqu'ils entrent dans le serveur en provenance d'une application côté client, puis les convertit et les stocke en mode natif en tant que caractères Unicode.SQL ServerSQL Server provides support for GB18030-encoded characters by recognizing them when they enter the server from a client-side application and converting and storing them natively as Unicode characters. Une fois stockés dans le serveur, ils sont traités en tant que caractères Unicode dans toutes les opérations suivantes.After they're stored in the server, they're treated as Unicode characters in any subsequent operations.

Vous pouvez utiliser n'importe quel classement chinois, de préférence la version 100 la plus récente.You can use any Chinese collation, preferably the latest 100 version. Tous les classements de niveau _100 prennent en charge le tri linguistique avec les caractères GB18030.All _100 level collations support linguistic sorting with GB18030 characters. Si les données incluent des caractères supplémentaires (paires de substitution), vous pouvez utiliser les classements SC disponibles dans SQL ServerSQL Server pour améliorer la recherche et le tri.If the data includes supplementary characters (surrogate pairs), you can use the SC collations that are available in SQL ServerSQL Server to improve searching and sorting.

Notes

Vérifiez que vos outils clients, comme SQL Server Management StudioSQL Server Management Studio, utilisent la police Dengxian pour afficher correctement les chaînes qui contiennent des caractères encodés en GB18030.Ensure that your client tools, such as SQL Server Management StudioSQL Server Management Studio, use the Dengxian font to correctly display strings that contain GB18030-encoded characters.

Prise en charge des scripts complexesComplex script support

SQL ServerSQL Server peut prendre en charge l'entrée, le stockage, la modification et l'affichage de scripts complexes.can support inputting, storing, changing, and displaying complex scripts. Les scripts complexes sont notamment les suivants :Complex scripts include the following types:

  • Scripts qui associent l'utilisation de textes écrits de droite à gauche et de gauche à droite, par exemple les textes écrits en arabe et en anglais.Scripts that include the combination of both right-to-left and left-to-right text, such as a combination of Arabic and English text.
  • Scripts dont les caractères changent de forme en fonction de leur position ou lorsqu'ils sont associés à d'autres caractères, par exemple les caractères arabes, indiens et thaï.Scripts whose characters change shape depending on their position, or when combined with other characters, such as Arabic, Indic, and Thai characters.
  • Des langues, telles que le thaï, nécessitent des dictionnaires internes pour la reconnaissance des mots, car ces derniers ne sont pas séparés.Languages, such as Thai, that require internal dictionaries to recognize words because there are no breaks between them.

Les applications de base de données qui interagissent avec SQL ServerSQL Server doivent utiliser des contrôles qui prennent en charge les scripts complexes.Database applications that interact with SQL ServerSQL Server must use controls that support complex scripts. Les contrôles Windows Form standard créés dans du code managé peuvent prendre en charge les scripts complexes.Standard Windows form controls that are created in managed code are complex-script-enabled.

Classements japonais ajoutés dans SQL Server 2017 (14.x)SQL Server 2017 (14.x)Japanese collations added in SQL Server 2017 (14.x)SQL Server 2017 (14.x)

À compter de SQL Server 2017 (14.x)SQL Server 2017 (14.x), de nouvelles familles de classement du japonais sont prises en charge, avec les permutations de différentes options (_CS, _AS, _KS, _WS et _VSS).Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x), new Japanese collation families are supported, with the permutations of various options (_CS, _AS, _KS, _WS, and _VSS).

Pour lister ces classements, vous pouvez interroger le Moteur de base de données SQL ServerSQL Server Database Engine :To list these collations, you can query the Moteur de base de données SQL ServerSQL Server Database Engine:

SELECT Name, Description FROM fn_helpcollations()  
WHERE Name LIKE 'Japanese_Bushu_Kakusu_140%' OR Name LIKE 'Japanese_XJIS_140%'

Tous les nouveaux classements disposent d’une prise en charge intégrée des caractères supplémentaires, de sorte qu’aucun des nouveaux classements _140 n’a (ni ne requiert) l’indicateur SC.All the new collations have built-in support for supplementary characters, so none of the new _140 collations has (or needs) the SC flag.

Ces classements sont pris en charge dans les index, les tables optimisées en mémoire, les index columnstore et les modules compilés en mode natif Moteur de base de donnéesDatabase Engine.These collations are supported in Moteur de base de donnéesDatabase Engine indexes, memory-optimized tables, columnstore indexes, and natively compiled modules.

Support UTF-8UTF-8 support

SQL Server 2019 (15.x)SQL Server 2019 (15.x) introduit le complet support du codage de caractères UTF-8 largement utilisé en tant qu’encodage d’importation ou d’exportation et en tant que classement au niveau des base de données et au niveau des colonnes pour les données de chaîne.introduces full support for the widely used UTF-8 character encoding as an import or export encoding, and as database-level or column-level collation for string data. UTF-8 est autorisé dans les types de données char et varchar, et il est activé quand vous créez ou modifiez le classement d’un objet en un classement avec un suffixe UTF8.UTF-8 is allowed in the char and varchar data types, and it's enabled when you create or change an object's collation to a collation that has a UTF8 suffix. La modification de LATIN1_GENERAL_100_CI_AS_SC en LATIN1_GENERAL_100_CI_AS_SC_UTF8 en est un exemple.One example is changing LATIN1_GENERAL_100_CI_AS_SC to LATIN1_GENERAL_100_CI_AS_SC_UTF8.

UTF-8 est disponible uniquement pour les classements Windows qui prennent en charge les caractères supplémentaires, comme introduit dans SQL Server 2012 (11.x)SQL Server 2012 (11.x).UTF-8 is available only to Windows collations that support supplementary characters, as introduced in SQL Server 2012 (11.x)SQL Server 2012 (11.x). Les types de données nchar et nvarchar autorisent l’encodage UCS-2 ou UTF-16 uniquement et restent inchangés.The nchar and nvarchar data types allow UCS-2 or UTF-16 encoding only, and they remain unchanged.

Différences de stockage entre UTF-8 et UTF-16Storage differences between UTF-8 and UTF-16

Le Consortium Unicode alloue à chaque caractère un point de code unique, qui est une valeur comprise entre 000000 et 10FFFF.The Unicode Consortium allocates to each character a unique code point, which is a value in the range 000000–10FFFF. Avec SQL Server 2019 (15.x)SQL Server 2019 (15.x), les encodages UTF-8 et UTF-16 sont disponibles pour représenter la plage complète :With SQL Server 2019 (15.x)SQL Server 2019 (15.x), both UTF-8 and UTF-16 encodings are available to represent the full range:

  • Avec l’encodage UTF-8, les caractères figurant dans la plage ASCII (de 000000 à 00007F) utilisent 1 octet, les points de code de 000080 à 0007FF nécessitent 2 octets, les points de code de 000800 à 00FFFF nécessitent 3 octets et les points de code de 0010000 à 0010FFFF nécessitent 4 octets.With UTF-8 encoding, characters in the ASCII range (000000–00007F) require 1 byte, code points 000080–0007FF require 2 bytes, code points 000800–00FFFF require 3 bytes, and code points 0010000–0010FFFF require 4 bytes.
  • Avec l’encodage UTF-16, les points de code de 000000 à 00FFFF nécessitent 2 octets et les points de code de 0010000 à 0010FFFF nécessitent 4 octets.With UTF-16 encoding, code points 000000–00FFFF require 2 bytes, and code points 0010000–0010FFFF require 4 bytes.

La table suivante liste les octets de stockage d’encodage pour chaque plage de caractères et type d’encodage :The following table lists the encoding storage bytes for each character range and encoding type:

Plage de codes (hexadécimal)Code range (hexadecimal) Plage de codes (décimal)Code range (decimal) Octets de stockage1 avec UTF-8Storage bytes1 with UTF-8 Octets de stockage1 avec UTF-16Storage bytes1 with UTF-16
000000–00007F000000–00007F 0–1270–127 11 22
000080–00009F000080–00009F
0000A0–0003FF0000A0–0003FF
000400–0007FF000400–0007FF
128–159128–159
160–1 023160–1,023
1 024–2 0471,024–2,047
22 22
000800–003FFF000800–003FFF
004000–00FFFF004000–00FFFF
2 048–16 3832,048–16,383
16 384–65 53516,384–65,535
33 22
010000–03FFFF2010000–03FFFF2

040000–10FFFF2040000–10FFFF2
65 536–262 143265,536–262,1432

262 144–1 114 1112262,144–1,114,1112
44 44

1 Les octets de stockage font référence à la longueur d’octets encodés, pas à la taille de stockage sur disque des types de données.1 Storage bytes refers to the encoded byte length, not the data-type on-disk storage size. Pour plus d’informations sur les tailles de stockage sur disque, consultez nchar et nvarchar et char et varchar.For more information about on-disk storage sizes, see nchar and nvarchar and char and varchar.

2 Plage de points de code pour des caractères supplémentaires.2 The code point range for supplementary characters.

Conseil

Il est courant de penser en CHAR(n) et en VARCHAR(n), ou en NCHAR(n) et en NVARCHAR(n), que le n définit le nombre de caractères.It's common to think, in CHAR(n) and VARCHAR(n) or in NCHAR(n) and NVARCHAR(n), that n defines the number of characters. En effet, dans l’exemple d’une colonne CHAR(10), 10 caractères ASCII de la plage de 0 à 127 peuvent être stockés à l’aide d’un classement tel que Latin1_General_100_CI_AI, car chaque caractère de cette plage utilise uniquement 1 octet.This is because, in the example of a CHAR(10) column, 10 ASCII characters in the range 0–127 can be stored by using a collation such as Latin1_General_100_CI_AI, because each character in this range uses only 1 byte.

Toutefois, dans CHAR(n) et VARCHAR(n), le n définit la taille de la chaîne en octets (de 0 à 8 000), et dans NCHAR(n) et NVARCHAR(n), le n définit la taille de la chaîne en paires d’octets (de 0 à 4 000).However, in CHAR(n) and VARCHAR(n), n defines the string size in bytes (0–8,000), and in NCHAR(n) and NVARCHAR(n), n defines the string size in byte-pairs (0–4,000). n ne définit jamais des nombres de caractères pouvant être stockés.n never defines numbers of characters that can be stored.

Comme vous venez de le voir, le choix de l’encodage Unicode et du type de données appropriés peut fournir des gains de stockage significatifs ou augmenter votre encombrement de stockage actuel, en fonction du jeu de caractères utilisé.As you've just seen, choosing the appropriate Unicode encoding and data type might give you significant storage savings or increase your current storage footprint, depending on the character set in use. Par exemple, lorsque vous utilisez un classement Latin prenant en charge UTF-8, tel que Latin1_General_100_CI_AI_SC_UTF8, une colonne CHAR(10) stocke 10 octets et peut contenir 10 caractères ASCII dans la plage de 0 à 127.For example, when you use a Latin collation that's UTF-8 enabled, such as Latin1_General_100_CI_AI_SC_UTF8, a CHAR(10) column stores 10 bytes and can hold 10 ASCII characters in the range 0–127. Toutefois, elle ne peut contenir que 5 caractères dans la plage de 128 à 2 047 et seulement 3 caractères dans la plage de 2 048 à 65 535.But it can hold only 5 characters in the range 128–2047 and only 3 characters in the range 2048–65535. En comparaison, comme une colonne NCHAR(10) stocke 10 paires d’octets (20 octets), elle peut contenir 10 caractères dans la plage de 0 à 65 535.By comparison, because a NCHAR(10) column stores 10 byte-pairs (20 bytes), it can hold 10 characters in the range 0–65535.

Avant de choisir s’il faut utiliser l’encodage UTF-8 ou UTF-16 pour une base de données ou une colonne, prenez en compte la distribution des données de chaîne qui seront stockées :Before you choose whether to use UTF-8 or UTF-16 encoding for a database or column, consider the distribution of string data that will be stored:

  • Si elle est principalement dans la plage ASCII de 0 à 127 (comme l’anglais), chaque caractère nécessite 1 octet avec UTF-8 et 2 octets avec UTF-16.If it's mostly in the ASCII range 0–127 (such as English), each character requires 1 byte with UTF-8 and 2 bytes with UTF-16. L’utilisation UFT-8 offre des avantages du stockage.Using UTF-8 provides storage benefits. Le fait de transformer un type de données de colonne existant comportant des caractères ASCII de la plage de 0 à 127 de NCHAR(10) en CHAR(10) et d’utiliser un classement prenant en charge UTF-8 se traduit par une réduction de 50 % des besoins en stockage.Changing an existing column data type with ASCII characters in the range 0–127 from NCHAR(10) to CHAR(10), and using an UTF-8 enabled collation, translates into a 50 percent reduction in storage requirements. Cette réduction correspond au fait que NCHAR(10) nécessite 20 octets pour le stockage, tandis que CHAR(10) nécessite 10 octets pour la même représentation de chaîne Unicode.This reduction is because NCHAR(10) requires 20 bytes for storage, compared with CHAR(10), which requires 10 bytes for the same Unicode string representation.
  • Au-dessus de la plage ASCII, presque tout l’alphabet latin et grec, cyrillique, copte, arménien, hébreu, arabe, syriaque, Tāna et n’ko nécessite 2 octets par caractère dans les encodages UTF-8 et UTF-16.Above the ASCII range, almost all Latin-based script, and Greek, Cyrillic, Coptic, Armenian, Hebrew, Arabic, Syriac, Tāna, and N’Ko, require 2 bytes per character in both UTF-8 and UTF-16. Dans ces cas, il n’y a pas de différences significatives de stockage pour des types de données comparables (par exemple, entre char et nchar).In these cases, there aren't significant storage differences for comparable data types (for example, between using char or nchar).
  • S’il s’agit principalement d’un script d’Extrême-Orient (par exemple, coréen, chinois ou japonais), chaque caractère nécessite 3 octets en UTF-8 et 2 octets en UTF-16.If it's mostly East Asian script (such as Korean, Chinese, and Japanese), each character requires 3 bytes with UTF-8 and 2 bytes with UTF-16. L’utilisation UFT-16 offre des avantages du stockage.Using UTF-16 provides storage benefits.
  • Les caractères figurant dans la plage de 010000 à 10FFFF nécessitent 4 octets en UTF-8 et UTF-16.Characters in the range 010000–10FFFF require 4 bytes in both UTF-8 and UTF-16. Dans ces cas, il n’y a pas de différences de stockage pour des types de données comparables (par exemple entre char et nchar).In these cases, there aren't storage differences for comparable data types (for example, between using char or nchar).

Pour d’autres considérations, consultez Écrire des instructions Transact-SQL internationales.For other considerations, see Write International Transact-SQL Statements.

TâcheTask RubriqueTopic
Explique comment définir ou modifier le classement de l’instance de SQL ServerDescribes how to set or change the collation of the instance of SQL Server Définir ou modifier le classement du serveurSet or Change the Server Collation
Explique comment définir ou modifier le classement d’une base de données utilisateurDescribes how to set or change the collation of a user database Définir ou modifier le classement de la base de donnéesSet or Change the Database Collation
Explique comment définir ou modifier le classement d’une colonne dans la base de donnéesDescribes how to set or change the collation of a column in the database Définir ou modifier le classement des colonnesSet or Change the Column Collation
Explique comment retourner des informations de classement au niveau du serveur, de la base de données ou de la colonneDescribes how to return collation information at the server, database, or column level Afficher des informations de classementView Collation Information
Explique comment écrire des instructions Transact-SQL qui sont plus portables d’une langue à une autre ou qui prennent en charge plusieurs langues plus facilementDescribes how to write Transact-SQL statements that are more portable from one language to another, or support multiple languages more easily Rédiger des instructions Transact-SQL internationalesWrite International Transact-SQL Statements
Explique comment modifier la langue des messages d’erreur et des paramètres relatifs à l’utilisation et l’affichage de la date, de l’heure et des devisesDescribes how to change the language of error messages and preferences for how date, time, and currency data is used and displayed Définir une langue de sessionSet a Session Language

Pour plus d’informations, consultez le contenu connexe suivante :For more information, see the following related content:

Voir aussiSee also

Classements de base de données autonome Contained Database Collations
Choisir une langue lors de la création d’un index de recherche en texte intégral Choose a Language When Creating a Full-Text Index
sys.fn_helpcollations (Transact-SQL)sys.fn_helpcollations (Transact-SQL)