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 :
Pour définir ou modifier le classement de base de données, utilisez :
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
etntext
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
ountext
présentes dans les tables système sont modifiées en fonction du nouveau classement.Tous les paramètres
char
,varchar
,text
,nchar
,nvarchar
, ountext
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
, ountext
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
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.
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 .
Une fois que vous avez terminé, cliquez sur OK.
Utilisation de Transact-SQL
Pour définir le classement de base de données
Connectez-vous au Moteur de base de données.
Dans la barre d'outils standard, cliquez sur Nouvelle requête.
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 classementLatin1_General_100_CS_AS_SC
. Après avoir créé la base de données, exécutez l'instructionSELECT
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
Connectez-vous au Moteur de base de données.
Dans la barre d'outils standard, cliquez sur Nouvelle requête.
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)