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

Cette rubrique décrit comment définir et modifier le classement de base de données dans SQL Server 2014 en utilisant SQL Server Management Studio ou Transact-SQL. Si aucun classement n'est spécifié, celui du serveur est utilisé.

Dans cette rubrique

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 code qui n’est pas prise en charge par Windows, le moteur de base de données affiche une erreur.

Recommandations

  • Vous trouverez les noms des classements pris en charge dans Nom de classement Windows (Transact-SQL) et Nom du classement SQL Server (Transact-SQL). Vous pouvez également 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 dans 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.

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.

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  
  

Voir aussi

Prise en charge d'Unicode et du classement
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 (SQL Server Transact-SQL)
ALTER TABLE (Transact-SQL)
ALTER DATABASE (Transact-SQL)