Découvrez comment configurer le SQL Collate.
La plupart des administrateurs système ne savent pas ce qu’est la collation jusqu’à ce qu’ils rencontrent des problèmes liés à celle-ci. En général, tous ceux d’entre nous qui ont déployé SQL Server ou des applications comme Microsoft System Center avons configuré cette fonctionnalité en suivant les exigences d’installation, sans vraiment comprendre ce que c’était.
Malheureusement, le fait de ne pas connaître cette fonctionnalité a causé des problèmes à de nombreux administrateurs ou techniciens système, car une mauvaise configuration de ce paramètre peut entraîner toutes sortes de problèmes, tant dans la base de données elle-même que dans les applications qui s’y connectent.
Mais pourquoi ces problèmes surviennent-ils ? Pourquoi ce paramètre est-il si important ? Que fait-il ?
Le SQL Collate (appelé SQL Collation selon la source) est la propriété de la base de données qui permet de distinguer les caractères tels que les accents, les majuscules, les minuscules, les autres caractères pris en charge et les règles de tri pour les données que la base de données est capable de gérer.
La collation (SQL Collate) spécifie donc à la base de données à la fois les motifs de bits représentant chaque caractère contenu dans l’ensemble de caractères lié à une région, ainsi que les règles de comparaison ou de tri des données.
Pour comprendre l’importance de cela, nous pouvons penser à notre lettre typiquement espagnole, la « eñe » (Ñ), qui n’existe pas en anglais, par exemple. Il en va de même pour l’arabe, le japonais, etc.
Cela signifie que l’utilisation d’un jeu de caractères différent peut entraîner des caractères que la base de données ne peut pas gérer ou comprendre, ce qui entraîne un comportement imprévisible.
En raison de tout ce qui a été exposé précédemment, nous pouvons dire que le SQL Collate est conditionné par la région où la base de données ou l’application sera installée et exploitée, et comme nous l’avons vu, la configuration de ce paramètre est un point critique du déploiement, bien qu’il puisse être modifié ultérieurement en cas de besoin.
Comment configurer le SQL Collate sur votre serveur SQL ?
Prérequis ou pré-configuration :
Pour réussir ce tutoriel et pouvoir configurer le SQL Collate, vous aurez besoin de :
- Un serveur sous Windows Server.
- SQL Server installé sur le serveur.
Étape 1 : Comment consulter le SQL Collate de notre base de données
Une fois cela dit, voyons comment consulter la collation ou le SQL Collation configuré dans notre base de données, puis comment le configurer à la fois depuis la console graphique et depuis la ligne de commande.
Pour consulter la valeur du SQL Collate, nous pouvons le faire de différentes manières :
- En le consultant depuis la console graphique.
- En l’exécutant via SQL (de différentes manières).
Commençons par voir comment le faire de la manière la plus simple, en utilisant la console graphique de SSMS (SQL Server Management Studio), qui est l’outil d’administration de SQL Server avec lequel tout technicien a dû composer à un moment donné.
Une fois dans la console SSMS, accédez à l’Explorateur d’objets, situé sur le côté, faites click droit sur le nom du serveur (1) et sélectionnez « Propriétés » (2) parmi les options affichées.
Une fois cela fait, une fenêtre contextuelle affichant les propriétés du serveur SQL s’affichera, parmi lesquelles vous devez vérifier la valeur de « Collation du serveur » (3).
Une autre façon de le vérifier est en utilisant une requête SQL. Pour cela, vous devez accéder à la console SSMS et cliquer sur « Nouvelle requête » (4).
Ensuite, à l’intérieur de l’espace de requêtes, vous devez entrer la requête suivante (5):
SELECT SERVERPROPERTY(‘collation’) AS ServerCollation;
Une fois cela fait, cliquez sur « Exécuter » (6).
Si tout se passe bien, vous verrez le message « Requête exécutée avec succès » (7) dans la zone des messages et la réponse du système dans la partie « Résultats » (8).
De cette manière, vous pourrez voir quelle configuration de collation est utilisée.
Ensuite, nous allons voir une autre façon de faire la requête sur la collation SQL où une requête est effectuée sur toutes les instances.
Dans la console SSMS, cliquez sur « Nouvelle requête » (9).
Dans l’espace des requêtes, entrez la requête suivante (10):
SELECT name, collation_name AS DbCollation
FROM sys.databases
Une fois cela fait, cliquez sur « Exécuter » (11).
Comme précédemment, si tout se passe bien, vous verrez le message « Requête exécutée avec succès » (12) dans la zone des messages et la réponse du système dans la partie « Résultats » (13).
De cette manière, vous pourrez voir quelle configuration de collation chaque base de données possède.
Avec cela, nous pouvons conclure la partie des requêtes et passer à la partie qui nous intéresse.
Étape 2 : Configurer le SQL Collate depuis la ligne de commandes
Il existe différentes manières de modifier le SQL Collate d’une base de données, mais nous allons décrire celle qui est peut-être la plus simple à mettre en œuvre, car nous cherchons à minimiser les coûts opérationnels tout en maintenant l’efficacité.
NOTE : Il est fortement recommandé de sauvegarder toutes les bases de données implémentées sur le serveur pour éviter toute perte d’informations en cas de catastrophe.
Pour effectuer cette opération, la première chose à faire est d’arrêter le service SQL Server. Cela permettra de réaliser l’opération sans qu’il y ait de connexions d’utilisateurs aux bases de données et ainsi éviter divers problèmes.
Pour ce faire, accédez à la console des Services système, qui peut être accessible de différentes manières, mais dans ce cas, allez à la barre de recherche et tapez « Services » (14), puis cliquez sur l’application qui s’affiche (15).
Dans la console des Services, recherchez le service « SQL Server (MSSQLSERVER) », qui est le service exécutant la base de données Microsoft SQL Server, et que nous allons arrêter pour éviter tout problème lors de l’opération.
Une fois que le service « SQL Server (MSSQLSERVER) » est localisé, faites un clic droit (16) et sélectionnez « Arrêter » (17) parmi les options affichées. Cela entraînera l’arrêt du service, qui ne devrait prendre que quelques secondes, bien que le temps nécessaire à cette action dépende de la charge du serveur.
Lorsque nous sommes certains que le service est arrêté, nous pouvons ouvrir une fenêtre de commande CMD (Command) avec des privilèges d’administrateur, qui devraient en réalité être hérités si nous sommes dans une session avec ces privilèges.
Dans la fenêtre de commande CMD, exécutez la commande suivante (18):
sqlservr -m -T4022 -T3659 -s »MSSQLSERVER » -q »SQL_Latin1_General_CP1_CI_AS »
Où nous avons les paramètres suivants:
- -m: Exécute le processus en mode mono-utilisateur administrateur (mode mono-utilisateur administratif).
- -T: Active la trace pendant l’exécution et le démarrage.
- -s: Utilisé pour spécifier le nom de l’instance. Si vous ne le connaissez pas, vous pouvez utiliser l’instance par défaut de la base de données, qui est « MSSQLSERVER ».
- -q: Pour spécifier la nouvelle collation SQL que nous souhaitons appliquer, qui dans notre cas est « SQL_Latin1_General_CP1_CI_AS ».
De plus, nous utilisons deux indicateurs de trace dans cette exécution :
- T4022: Contourne le processus de démarrage de SQL Server.
- T3569: Fait dériver toutes les erreurs de validation vers « errorlog » pendant le processus de démarrage. De la même manière, nous pourrions le faire pour passer à la collation française, par exemple :
sqlservr -m -T4022 -T3659 -s »MSSQLSERVER » -q »French_CI_AS »
Pendant l’exécution, un grand volume de messages dérivés des changements est généré (19) et affiché à l’écran, ce qui permet à l’administrateur de les consulter s’il le souhaite.
Une fois l’exécution terminée, le processus reste en attente, en attente que l’utilisateur envoie un signal de fin d’exécution avec un « Contrôle + C » (20).
Ensuite, vous devez revenir à la console des Services et rechercher le service « SQL Server (MSSQLSERVER) ». Faites un clic droit (21) sur ce service et sélectionnez « Démarrer » (22) parmi les options affichées. Cela déclenche le démarrage du service, qui prendra quelques secondes, bien que le temps nécessaire à cette action dépende à nouveau de la charge du serveur.
Après cela, nous pourrons vérifier à nouveau l’état de la collation en lançant une requête.
Pour ce faire, revenez à la console SSMS et dans l’Explorateur d’objets, faites un clic droit sur le nom du serveur (23) et cliquez sur « Propriétés » (24) parmi les options affichées.
Une fois cela fait, la fenêtre des propriétés du serveur SQL s’affiche, et vous devez vérifier la valeur de « Collation du serveur » (25) qui devrait afficher la collation correcte.
Et avec cela, nous aurions effectué toute l’opération et la valeur du SQL Collate (SQL Collation) serait correctement configurée.
Conclusions
La collation, également connue sous le nom de SQL Collation ou SQL Collate, est la propriété de la base de données qui spécifie les motifs de bits qui représenteront chaque caractère de l’ensemble de données utilisé dans notre langue, ainsi que la manière dont les données pourront être comparées ou triées. Il s’agit d’un aspect crucial pour le bon fonctionnement de nos applications et de nos bases de données.
Ne pas avoir cette propriété correctement configurée peut entraîner des comportements indésirables, c’est pourquoi plusieurs méthodes sont décrites dans cet article pour la configurer de manière à ne pas poser de problèmes aux utilisateurs travaillant avec des systèmes ES_ES.