ClassementsCollations

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabaseouiAzure SQL Data Warehouse ouiParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Clause pouvant être appliquée à la définition d'une base de données ou d'une colonne pour définir le classement, ou à une expression de chaîne de caractères pour appliquer un changement de classement.Is a clause that can be applied to a database definition or a column definition to define the collation, or to a character string expression to apply a collation cast.

Icône de lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax


COLLATE { <collation_name> | database_default }  
<collation_name> :: =   
     { Windows_collation_name } | { SQL_collation_name }  

ArgumentsArguments

collation_namecollation_name
Nom du classement à appliquer à l'expression, à la définition de colonne ou à la définition de base de données.Is the name of the collation to be applied to the expression, column definition, or database definition. collation_name peut être uniquement spécifiée Windows_collation_name ou un SQL_collation_name.collation_name can be only a specified Windows_collation_name or a SQL_collation_name. collation_name doit être une valeur littérale.collation_name must be a literal value. collation_name ne peut pas être représenté par une variable ou une expression.collation_name cannot be represented by a variable or expression.

Windows_collation_name est le nom de classement pour un nom de classement Windows.Windows_collation_name is the collation name for a Windows Collation Name.

SQL_collation_name est le nom de classement pour un nom du classement SQL Server.SQL_collation_name is the collation name for a SQL Server Collation Name.

Lors de l'application d'un classement au niveau de la définition de la base de données, les classements Windows Unicode seulement ne peuvent pas être utilisés avec la clause COLLATE.When applying a collation at the database definition level, Unicode-only Windows collations cannot be used with the COLLATE clause.

database_defaultdatabase_default
Oblige la clause COLLATE à hériter du classement de la base de données active.Causes the COLLATE clause to inherit the collation of the current database.

NotesRemarks

La clause COLLATE peut être spécifiée à plusieurs niveaux,The COLLATE clause can be specified at several levels. Ces options en question sont les suivantes :These include the following:

  1. la création ou modification d'une base de données ;Creating or altering a database.

    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.You can use the COLLATE clause of the CREATE DATABASE or ALTER DATABASE statement to specify the default collation of the database. Vous pouvez également spécifier un classement lorsque vous créez une base de données à l'aide de SQL Server Management StudioSQL Server Management Studio.You can also specify a collation when you create a database using SQL Server Management StudioSQL Server Management Studio. Si vous ne spécifiez pas de classement, le classement par défaut de l'instance de SQL ServerSQL Server sera appliqué à la base de données.If you do not specify a collation, the database is assigned the default collation of the instance of SQL ServerSQL Server.

    Note

    Classements Windows Unicode seulement peuvent uniquement être utilisée avec la clause COLLATE pour appliquer des classements pour les nchar, nvarchar, et ntext des types de données sur les données au niveau des colonnes et de niveau expression ; ils ne peut pas être utilisés avec la clause COLLATE pour modifier le classement d’une instance de serveur ou de base de données.Windows Unicode-only collations can only be used with the COLLATE clause to apply collations to the nchar, nvarchar, and ntext data types on column-level and expression-level data; they cannot be used with the COLLATE clause to change the collation of a database or server instance.

  2. la création ou modification d'une colonne dans une table ;Creating or altering a table column.

    Vous pouvez spécifier des classements pour chaque colonne de chaîne de caractères à l'aide de la clause COLLATE de l'instruction CREATE TABLE ou ALTER TABLE.You can specify collations for each character string column using the COLLATE clause of the CREATE TABLE or ALTER TABLE statement. Vous pouvez également spécifier un classement lorsque vous créez une table à l'aide de SQL Server Management StudioSQL Server Management Studio.You can also specify a collation when you create a table using SQL Server Management StudioSQL Server Management Studio. Si vous ne spécifiez pas de classement, le classement par défaut de la base de données sera appliqué à la colonne.If you do not specify a collation, the column is assigned the default collation of the database.

    Vous pouvez également utiliser le database_default option dans la clause COLLATE pour spécifier qu’une colonne dans une table temporaire utilise le classement par défaut de la base de données utilisateur actuel pour la connexion à la place de tempdb.You can also use the database_default option in the COLLATE clause to specify that a column in a temporary table use the collation default of the current user database for the connection instead of tempdb.

  3. la conversion du classement d'une expression.Casting the collation of an expression.

    Vous pouvez utiliser la clause COLLATE pour appliquer une expression de caractère à un classement particulier.You can use the COLLATE clause to apply a character expression to a certain collation. Le classement par défaut de la base de données active est attribué aux constantes et aux variables de caractères.Character literals and variables are assigned the default collation of the current database. Le classement des définitions de la colonne est affecté aux références de colonnes.Column references are assigned the definition collation of the column.

    Le classement d'un identificateur dépend du niveau auquel il est défini.The collation of an identifier depends on the level at which it is defined. Le classement par défaut de l'instance est assigné aux identificateurs d'objets qui sont au niveau de l'instance, tels que les noms de connexion et de base de données.Identifiers of instance-level objects, such as logins and database names, are assigned the default collation of the instance. Le classement par défaut de la base de données est assigné aux identificateurs d'objets qui appartiennent à la base de données, tels que les noms des tables, des vues et des colonnes.Identifiers of objects within a database, such as tables, views, and column names, are assigned the default collation of the database. Par exemple, deux tables dont les noms diffèrent uniquement au niveau de la casse peuvent être créées dans une base de données dont le classement respecte les majuscules/minuscules, mais pas dans une base de données dont le classement ne distingue pas les majuscules des minuscules.For example, two tables with names different only in case may be created in a database with case-sensitive collation, but may not be created in a database with case-insensitive collation. Pour plus d'informations, consultez Database Identifiers.For more information, see Database Identifiers.

    Les variables, étiquettes GOTO, procédures stockées temporaires et tables temporaires peuvent être créées lorsque le contexte de la connexion est associé à une base de données, puis référencées lorsque le contexte est associé à une autre base de données.Variables, GOTO labels, temporary stored procedures, and temporary tables can be created when the connection context is associated with one database, and then referenced when the context has been switched to another database. Les identificateurs des variables, étiquettes GOTO, procédures stockées temporaires et tables temporaires se trouvent dans le classement par défaut de l'instance du serveur.The identifiers for variables, GOTO labels, temporary stored procedures, and temporary tables are in the default collation of the server instance.

    La clause COLLATE peut être appliquée uniquement pour le char, varchar, texte, nchar, nvarchar, et ntext des types de données.The COLLATE clause can be applied only for the char, varchar, text, nchar, nvarchar, and ntext data types.

    COLLATE utilise collate_name pour faire référence au nom de classement SQL Server ou le classement Windows à appliquer à l’expression, la définition de colonne ou la définition de la base de données.COLLATE uses collate_name to refer to the name of either the SQL Server collation or the Windows collation to be applied to the expression, column definition, or database definition. collation_name peut être uniquement spécifiée Windows_collation_name ou un SQL_collation_name et le paramètre doit contenir une valeur littérale.collation_name can be only a specified Windows_collation_name or a SQL_collation_name and the parameter must contain a literal value. collation_name ne peut pas être représenté par une variable ou une expression.collation_name cannot be represented by a variable or expression.

    Les classements sont généralement identifiés par un nom de classement, hormis dans le programme d'installation.Collations are generally identified by a collation name, except in Setup. Dans le programme d'installation, vous spécifiez à la place l'indicateur du classement de la racine (les paramètres régionaux de classement) pour les classements Windows, puis spécifiez des options de tri qui respectent ou non la casse et les accents.In Setup you instead specify the root collation designator (the collation locale) for Windows collations, and then specify sort options that are sensitive or insensitive to case or accents.

    Vous pouvez exécuter la fonction système fn_helpcollations pour récupérer une liste de tous les noms de classement valide pour les classements Windows et SQL Server :You can execute the system function fn_helpcollations to retrieve a list of all the valid collation names for Windows collations and SQL Server collations:

SELECT name, description  
FROM fn_helpcollations();  

SQL ServerSQL Server ne peut prendre en charge que les pages de codes qui sont prises en charge par le système d'exploitation sous-jacent. can support only code pages that are supported by the underlying operating system. Lorsque vous effectuez une action qui dépend de classements, le classement SQL ServerSQL Server utilisé par l'objet référencé doit utiliser une page de codes prise en charge par le système d'exploitation exécuté sur l'ordinateur.When you perform an action that depends on collations, the SQL ServerSQL Server collation used by the referenced object must use a code page supported by the operating system running on the computer. Ces actions sont notamment les suivantes :These actions can include the following:

  • l'indication d'un classement par défaut d'une base de données lorsque vous créez ou modifiez cette dernière ;Specifying a default collation for a database when you create or alter the database.

  • l'indication d'un classement d'une colonne lorsque vous créez ou modifiez une table ;Specifying a collation for a column when you create or alter a table.

  • Lors de la restauration ou attachement d’une base de données, le classement par défaut de la base de données et le classement de n’importe quel char, varchar, et texte colonnes ou des paramètres dans la base de données doivent être pris en charge par le système d’exploitation.When restoring or attaching a database, the default collation of the database and the collation of any char, varchar, and text columns or parameters in the database must be supported by the operating system.

    Traductions de page de codes sont prises en charge pour char et varchar des types de données, mais pas pour texte type de données.Code page translations are supported for char and varchar data types, but not for text data type. La perte de données lors de la traduction d'une page de codes n'est pas mentionnée.Data loss during code page translations is not reported.

    Si le classement spécifié ou le classement utilisé par l’objet référencé utilise une page de codes non prise en charge par Windows, SQL ServerSQL Server affiche une erreur.If the collation specified or the collation used by the referenced object uses a code page not supported by Windows, SQL ServerSQL Server displays an error.

ExemplesExamples

A.A. Spécification d'un classement pendant une sélectionSpecifying collation during a select

L'exemple suivant crée une table simple et insère 4 lignes.The following example creates a simple table and inserts 4 rows. Il applique ensuite deux classements lors de la sélection de données de la table, montrant comment Chiapas est trié différemment.Then the example applies two collations when selecting data from the table, demonstrating how Chiapas is sorted differently.

CREATE TABLE Locations  
(Place varchar(15) NOT NULL);  
GO  
INSERT Locations(Place) VALUES ('Chiapas'),('Colima')  
                             , ('Cinco Rios'), ('California');  
GO  
--Apply an typical collation  
SELECT Place FROM Locations  
ORDER BY Place  
COLLATE Latin1_General_CS_AS_KS_WS ASC;  
GO  
-- Apply a Spanish collation  
SELECT Place FROM Locations  
ORDER BY Place  
COLLATE Traditional_Spanish_ci_ai ASC;  
GO  

Voici les résultats de la première requête.Here are the results from the first query.

Place 
------------- 
California 
Chiapas 
Cinco Rios 
Colima

Voici les résultats de la seconde requête.Here are the results from the second query.

Place 
------------- 
California 
Cinco Rios 
Colima 
Chiapas

B.B. Exemples supplémentairesAdditional examples

Pour obtenir des exemples supplémentaires qui utilisent COLLATE, consultez CREATE DATABASE ( SQL Server Transact-SQL ) exemple g. création d’une base de données et en spécifiant un nom de classement et les options, et ALTER TABLE ( Transact-SQL ) exemple V. modification de classement de colonne.For additional examples that use COLLATE, see CREATE DATABASE (SQL Server Transact-SQL) example G. Creating a database and specifying a collation name and options, and ALTER TABLE (Transact-SQL) example V. Changing column collation.

Voir aussiSee Also

ALTER TABLE (Transact-SQL) ALTER TABLE (Transact-SQL)
Prise en charge d'Unicode et du classement Collation and Unicode Support
Priorité de classement (Transact-SQL) Collation Precedence (Transact-SQL)
Constantes ( Transact-SQL ) Constants (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL) CREATE DATABASE (SQL Server Transact-SQL)
CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
DECLARE @local_variable (Transact-SQL) DECLARE @local_variable (Transact-SQL)
table ( Transact-SQL )table (Transact-SQL)