Définir ou modifier le classement de la base de données

Cette rubrique explique comment définir et modifier le classement de base de données dans SQL Server 2012 à l'aide de SQL Server Management Studio ou de Transact-SQL. Si aucun classement n'est spécifié, celui du serveur est utilisé.

Dans cette rubrique

  • Avant de commencer :

    Limitations et restrictions

    Recommandations

    Sécurité

  • Pour définir ou modifier le classement de base de données, utilisez :

    SQL Server Management Studio

    Transact-SQL

Avant de commencer

Limitations et restrictions

  • Les classements Windows Unicode seulement peuvent être utilisés uniquement avec la clause COLLATE afin d'appliquer des classements aux types de données nchar, nvarchar et ntext sur les données de niveau de colonne et de niveau d'expression. Ils ne peuvent pas être utilisés avec la clause COLLATE pour modifier le classement d'une instance de serveur ou de base de données.

  • Si le classement spécifié ou le classement utilisé par l'objet référencé utilise une page de codes non gérée par Windows, le Moteur de base de données affiche une erreur.

Recommandations

  • Vous pouvez rechercher les noms de classement pris en charge dans Nom de classement Windows (Transact-SQL) et Nom du classement SQL Server (Transact-SQL) ; sinon, vous pouvez utiliser la fonction système sys.fn_helpcollations (Transact-SQL).

  • Lorsque vous modifiez le classement d'une base de données, vous changez les éléments suivants :

    • Toutes les colonnes char, varchar, text, nchar, nvarchar ou ntext présentes dans les tables système sont modifiées en fonction du nouveau classement.

    • Tous les paramètres char, varchar, text, nchar, nvarchar, ou ntext existants et les valeurs de retour scalaires destinés aux procédures stockées et aux fonctions définies par l'utilisateur sont modifiés en fonction du nouveau classement.

    • Les types de données système char, varchar, text, nchar, nvarchar, ou ntext et tous les types de données définis par l'utilisateur sur la base de ces types de données système sont modifiés en fonction du nouveau classement par défaut.

  • Vous pouvez modifier le classement de tous les objets créés dans une base de données utilisateur à l'aide de la clause COLLATE de l'instruction ALTER DATABASE. Cette instruction ne modifie pas le classement des colonnes dans les tables définies par l'utilisateur existantes. Celles-ci peuvent être modifiées à l'aide de la clause COLLECT de l'instruction ALTER TABLE.

Sécurité

Autorisations

  • CREATE DATABASE
    Nécessite l'autorisation CREATE DATABASE sur la base de données master, ou l'autorisation CREATE ANY DATABASE ou ALTER ANY DATABASE.

  • ALTER DATABASE
    Nécessite l'autorisation ALTER sur la base de données.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de SQL Server Management Studio

Pour définir ou modifier le classement de base de données

  1. Dans l'Explorateur d'objets, connectez-vous à une instance du Moteur de base de données SQL Server, développez cette instance, puis développez Bases de données.

  2. Si vous créez une base de données, cliquez avec le bouton droit sur Bases de données, puis sélectionnez Nouvelle base de données. Si vous ne souhaitez pas définir le classement par défaut, cliquez sur la page Options, puis sélectionnez un classement dans la liste déroulante Classement.

    Sinon, si la base de données existe déjà, cliquez avec le bouton droit sur la base de données de votre choix et sélectionnez Propriétés. Cliquez sur la page Options, puis sélectionnez un classement dans la liste déroulante Classement.

  3. Une fois que vous avez terminé, cliquez sur OK.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de Transact-SQL

Pour définir le classement de base de données

  1. Connectez-vous au Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter. Cet exemple montre comment utiliser la clause COLLATE pour spécifier un nom de classement. L'exemple crée la base de données MyOptionsTest qui utilise le classement Latin1_General_100_CS_AS_SC. Après avoir créé la base de données, exécutez l'instruction SELECT pour vérifier le paramètre.

USE master;
GO
IF DB_ID (N'MyOptionsTest') IS NOT NULL
DROP DATABASE MyOptionsTest;
GO
CREATE DATABASE MyOptionsTest
COLLATE Latin1_General_100_CS_AS_SC;
GO

--Verify the collation setting.
SELECT name, collation_name
FROM sys.databases
WHERE name = N'MyOptionsTest';
GO

Pour modifier le classement de la base de données

  1. Connectez-vous au Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter. Cet exemple montre comment utiliser la clause COLLATE dans une instruction ALTER DATABASE pour modifier le nom du classement. Exécutez l'instruction SELECT pour vérifier la modification.

USE master;
GO
ALTER DATABASE MyOptionsTest
COLLATE French_CI_AS ;
GO

--Verify the collation setting.
SELECT name, collation_name
FROM sys.databases
WHERE name = N'MyOptionsTest';
GO

Icône de flèche utilisée avec le lien Retour en haut[Top]

Voir aussi

Référence

sys.fn_helpcollations (Transact-SQL)

sys.databases (Transact-SQL)

Nom du classement SQL Server (Transact-SQL)

Nom de classement Windows (Transact-SQL)

COLLATE (Transact-SQL)

Priorité de classement (Transact-SQL)

CREATE TABLE (Transact-SQL)

CREATE DATABASE (Transact-SQL)

ALTER TABLE (Transact-SQL)

ALTER DATABASE (Transact-SQL)

Concepts

Prise en charge d'Unicode et du classement