Définir ou modifier le classement du serveur

S’applique à : SQL Server Azure SQL Managed Instance

Le classement du serveur agit en tant que classement par défaut pour toutes les bases de données système installées avec l’instance de SQL Server, ainsi que pour toute base de données utilisateur nouvellement créée.

Vous devez examiner attentivement le classement au niveau du serveur, car il peut affecter :

  • Les règles de tri et de comparaison dans =, JOIN, ORDER BY et d’autres opérateurs qui comparent les données textuelles.
  • Le classement des colonnes CHAR, VARCHAR, NCHAR et NVARCHAR dans les vues système, les fonctions système et les objets dans tempdb (par exemple, les tables temporaires).
  • Les noms des variables, des curseurs et des étiquettes GOTO. Par exemple, les variables @pi et @PI sont considérées comme différentes si le classement au niveau du serveur respecte la casse et comme identiques si le classement au niveau du serveur respecte la casse.

Classement du serveur dans SQL Server

Le classement du serveur est spécifié au cours de l’installation de SQL Server. Le classement au niveau du serveur par défaut est basé sur les paramètres régionaux du système d’exploitation.

Par exemple, le classement par défaut pour les systèmes utilisant l’anglais américain (en US) est SQL_Latin1_General_CP1_CI_AS. Pour plus d’informations, notamment la liste des paramètres régionaux de système d’exploitation pour les mappages de classement par défaut, consultez la section « classements au niveau du serveur » de Classement et prise en charge d’Unicode.

Remarque

Le classement au niveau du serveur pour la base de données locale SQL Server Express est SQL_Latin1_General_CP1_CI_AS et ne peut pas être modifié, pendant ou après l’installation.

Changer le classement du serveur dans SQL Server

La modification du classement par défaut d’une instance de SQL Server peut être une opération complexe.

Remarque

Au lieu de modifier le classement par défaut d’une instance de SQL Server, vous pouvez spécifier un classement par défaut pour chaque nouvelle base de données que vous créez via la clause COLLATE des instructions CREATE DATABASE et ALTER DATABASE. Pour plus d’informations, voir Set or Change the Database Collation.

La modification du classement de l’instance implique les étapes suivantes :

  • Vérifiez que vous disposez de toutes les informations ou de tous les scripts nécessaires pour recréer vos bases de données utilisateur et les objets qu'elles contiennent.

  • Exportez toutes vos données à l’aide d’un outil tel que l’ utilitaire bcp. Pour plus d’informations, consultez Importation et exportation en bloc de données (SQL Server).

  • Supprimez toutes les bases de données utilisateur.

  • Recréez la base de données master en spécifiant le nouveau classement dans la propriété SQLCOLLATION de la commande setup. Par exemple :

    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
    /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ]
    /SQLCOLLATION=CollationName  
    

    Pour plus d’informations, consultez Reconstruire des bases de données système.

  • Créez toutes les bases de données et tous les objets qu'elles contiennent.

  • Importez toutes vos données.

Définir le classement du serveur dans Azure SQL Managed Instance

Le classement au niveau du serveur dans Azure SQL Managed Instance peut être spécifié quand l’instance est créée et ne peut plus être modifiée. Vous pouvez définir le classement au niveau du serveur par le biais du portail Azure ou de PowerShell et du modèle Resource Manager lors de la création de l’instance. Le classement par défaut au niveau du serveur est SQL_Latin1_General_CP1_CI_AS.

Si vous migrez des bases de données depuis SQL Server vers Azure SQL Managed Instance, vérifiez le classement du serveur dans le serveur SQL Server source à l’aide de la fonction SERVERPROPERTY(N'Collation'), puis créez une instance Managed Instance qui correspond au classement de votre serveur SQL Server. La migration d’une base de données depuis SQL Server vers SQL Managed Instance sans mise en correspondance des classements au niveau du serveur peut entraîner plusieurs erreurs inattendues dans les requêtes. Vous ne pouvez pas changer le classement au niveau du serveur sur l’instance Managed Instance existante.

Classements dans la base de données Azure SQL

Vous ne pouvez pas modifier ou définir le classement du serveur logique sur la base de données Azure SQL, mais vous pouvez configurer les classements de chaque base de données à la fois pour les données et pour le catalogue. Le classement du catalogue détermine le classement pour les métadonnées système, telles que les identificateurs d’objet. Les deux classements peuvent être spécifiés indépendamment lorsque vous créez la base de données dans le portail Azure, dans T-SQL avec CREATE DATABASE, dans PowerShell avec New-AzSqlDatabase.