changer la collation d'un serveur SQL Server

Comment changer la collation d’un serveur SQL Server

Pour changer la collation d’un serveur SQL Server il est préférable de le faire pendant l’installation de SQL. C’est simple et plus pratique. En effet, par défaut lors de l’installation la collation de SQL Server est SQL_Latin1_General_CP_CI_AS.

Vous avez déjà entendu parler du terme mais peut être vous ne savez pas le sens. Nous allons donc commencer par comprendre de quoi il s’agit.

Qu’est ce que la collation ?

En Français c’est le « classement » mais en terme technique, on parle très souvent donc de « collation ». Si notre système d’informations est en Français  et donc notre serveur de base de données est aussi en Français, on aura donc besoin d’une collation « French_CI_AS ».

Ceci s’applique pour les VARCHAR et les NVARCHAR pour la recherche de termes et le tri.

Le CI pour dire « Case Insensitive » donc insensible à la casse et va considérer les minuscules comme les majuscules.

Le AS pour dire « Accent Sensitive » donc sensible aux accents.

La collation peut être attribuée au niveau du serveur SQL et donc toutes les bases y compris tempdb auront la collation du serveur.

La collation peut aussi être attribuée au niveau d’une base, donc la collation du serveur sera différente de celle de la base.

Et enfin, la collation peut être attribuée au niveau d’une colonne.

Changer la collation lors de l’installation de SQL Server

Lors de l’installation de SQL Server et en arrivant à la configuration du serveur, nous allons accèder à l’onglet « Collation » ou « Classement » si on installe SQL Server en Français.

installation de SQL Server, configuration du serveur

Cliquer sur « Customize » ou « Personnaliser »

changer la collation d'un serveur SQL Server

Quand on clique sur « ok » on va alors se retrouver avec le classement « French_CI_AS »

classement "French_CI_AS"

Changer la collation après l’installation de SQL Server

C’est un peu plus compliqué de changer la collation d’un serveur SQL Server après l’installation. En effet, cette méthode fonctionne parfaitement même si vous avez pris une licence SQL Azure ou si vous ne souhaitez pas réinstaller le serveur SQL.

voici donc la procédure à suivre :

  • Faite une sauvegarde de vos bases de données
  • Détachez vos bases de données
  • Regénérer (Rebuild) la base de données master en spécifiant le nouveau classement dans la propriété SQLCOLLATION de la commande d’installation :

Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName

/SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ]

/SQLCOLLATION=CollationName

Sachant que :

  • InstanceName : Le nom de l’instance (l’instance par défaut de SQL Server est MSSQLSERVER)
  • accounts : le compte administrateur de la machine, exemple « Administrateur »
  • StrongPassword : le mot de passe du compte sa
  • CollationName : la nouvelle collation à affecter au serveur SQL

Pour exécuter cette commande Setup, il faudra lancer la commande CMD en mode administrateur.

Allez dans le chemin du setup de SQL serveur, par exemple « cd Program Files\Microsoft SQL Server\140\Setup Bootstrap\SQL2017 »

L’exécution de la commande Setup ne donne aucun message, sauf en cas d’erreur. Donc si tout se passe bien, vous n’allez avoir aucun message en sortie.

Vous pouvez maintenant vérifier la nouvelle collation avec la commande :

SELECT SERVERPROPERTY(N'Collation')

Références

https://docs.microsoft.com/en-us/sql/relational-databases/collations/set-or-change-the-server-collation?view=sql-server-ver15

https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver15

Laisser un commentaire, votre avis nous intéresse