Changement du classement (collation) pour une base MSSQL
De manière simple et rapide, il n'est pas possible de changer le classement défini d'une base de données. Si vous le faites sur les différentes tables de votre base de données via la console SQL Server Management, cela n'aura d'effet que pour les nouveaux champs texte (char, varchar et text) créés mais aucune incidence sur ceux existants.
il serait alors nécessaire d'effectuer la modification sur l'ensemble des champs texte de chacune des tables de la base de données. Travail quelque peu fastidieux !!
Aussi, la méthode la plus propre et rapide est de créer une nouvelle base de données avec le classement souhaité puis d'exporter et de réimporter les données de l'ancienne base vers la nouvelle. Vous trouverez ci-dessous le mode opératoire pour une telle opération.
1. Création de la base de données
La première étape consiste à créer la base de données avec le classement souhaité. Ouvrez la console Microsoft SQL Server Management Studio. Placez-vous sur la branche Bases de données puis faites un clic droit Nouvelle base de données.
Vous accédez alors à l'écran de paramétrage de la nouvelle base de données. Entrez le nom sur le champ correspondant dans la rubrique Général.
Ensuite, dans la rubrique Options, sélectionnez dans la liste déroulante le classement de votre choix. Validez ensuite la création de votre base de données avec le bouton OK.
2. Paramétrage de l'utilisateur de la base de données
Maintenant que la nouvelle base de données est créée, il est nécessaire de lui affecter un utilisateur. Sauf contrainte spécifique, nous lui associerons le même utilisateur que celui de la base précédente. Pour cela, placez-vous sur la base de données puis ouvrez la branche Sécurité - utilisateurs. Faites alors un clic droit Nouvel utilisateur.
Vous accédez alors à l'écran de paramétrage ci-dessous. Indiquez le même utilisateur que celui de l'ancienne base de données. Donnez ensuite le rôle Db_owner sur cette base afin de permettre toutes les opérations nécessaires de création de tables, champs,...
La base de données est maintenant prête à l'utilisation.
3. Création des tables de la nouvelle base de données
Il est nécessaire de faire créer l'ensemble des tables par l'application plutôt que par le module d'import / export que nous verrons plus loin. En effet, de nombreux index et autres paramétrages sur la base de données sont réalisés lors de la création initiale des tables par l'application, choses qui ne seraient pas faites par l'export / import.
Aussi, il est nécessaire de modifier le fichier de connexion de votre application pour la faire pointer sur la nouvelle base de données.
ATTENTION : Il est impératif qu'aucun utilisateur ne lance l'application durant toutes les manipulations jusqu'à la fin de l'import des données.
Le fichier de connexion à la base de données(CONFIG.PHP) est placé dans le répertoire /CONFIG de l'application. Ouvrez ce fichier avec un éditeur de texte classique tel que le Notepad de Windows.
Au sein de ce fichier, vous trouverez la ligne :
$cfg_databaseSQL='compar';
Remplacez alors le nom de l'ancienne base de données par celui de la nouvelle base et enregistrez votre fichier.
$cfg_databaseSQL='compar_collation';
Relancez ensuite l'application avec votre lien de lancement usuel. Un processus de création des tables de la base de données va alors se déclencher automatiquement. A l'issue, la base est prête pour l'étape suivante d'export / import des données.
4. Export / Import des données
Une fois la base de données créée avec le bon classement, nous allons pouvoir passer au transfert des données vers la nouvelle base.
Pour cela, placez vous sur votre base de données (celle paramétrée avec le mauvais classement) puis faites un clic droit Tâches - Exporter les données.
Vous accédez alors à l'assistant Import /Export de SQL Server. Sur le premier écran proposé, sélectionnez la base de données à partir de laquelle vous souhaitez exporter les données. Dans notre cas, c'est la base de données disposant du mauvais classement.
Cliquez ensuite sur Suivant.
A ce niveau, indiquez la nouvelle base de données en vous assurant de sélectionner correctement le nom du serveur et le mode d'authentification.
Cliquez sur le bouton Suivant. Vous sélectionnez sur cet écran le choix Copier les données à partir d'une ou plusieurs tables ou vues.
Cliquez sur le bouton Suivant. Sur ce nouvel écran, vous allez sélectionner toutes les tables à copier. Cochez la case présente dans l'entête de la première colonne pour sélectionner toutes les tables de cette base de données en une seule fois.
Cliquez ensuite sur le bouton Modifier les mappages afin d'accéder à des paramétrages complémentaires.
Cochez les cases tel que cela est montré dans la copie d'écran ci-dessus. Validez par le bouton OK puis cliquez sur Suivant.
Vous pouvez ensuite déclencher le processus d'export / import des données.