OVH Cloud OVH Cloud

Changer une BD de collation

2 réponses
Avatar
Geko
Bonjour,

Voici mon problème : J’ai une base SQL2000 avec Latin1_General_CI_AI comme
collation avec des tables ayant des colonnes avec la même collation.
J’aimerais changer la collation de la BD et des colonnes des tables pour
SQL_Latin1_General_CP850_CI_AI mais je n’y arrive pas.

Soit la collation de la base est ok mais pas celles des colonnes, où alors
je perds mon accentuation lors du transfert de Data. Je ne sais vraiment pas
comment m’y prendre.

De l’aide svp.

2 réponses

Avatar
Fred BROUARD
Bonjour

Il n'y a pas d'autre moyen que de migrer toutes les données :
1) créer une nouvelle base avec la nouvelle collation
2) migrer les données de chaque table à l'aide de l'ordre SQL "INSERT INTO ...
SELECT ... " en spécifiant une clause COLLATE pour chaque colonne
3) supprimer la base source
4) modifier le nom de la base cible.

Car la modification d'une collation (ALTER DATABASE..., ALTER TABLE...) ne vaut
que pour les nouvelles données, pas celles en cours.

MAIS, toute ceci ne donnera pas une base très performante et cela pour deux
raisons :
1) la collation sur laquelle repose toute les données est celle du serveur.
Toute autre colation au niveau base ou colonne, se superpose à celle du serveur.
2) la collation que vous avez choisit 'SQL_Latin1_General_CP850_CI_AI' est une
collation non Windows qui est par essence moins performante, car elle ne repose
pas sur une page de code Windows et nécessite donc plusieurs transformation.

Si vous voulez des performances il vaut mieux installer votre serveur avec la
collation Windows la mieux adpatée à votre problématique et si possible binaire.
Ne dévier ce cette collation que pour quelques colonnes très particulières.

A +

Geko a écrit:
Bonjour,

Voici mon problème : J’ai une base SQL2000 avec Latin1_General_CI_AI comme
collation avec des tables ayant des colonnes avec la même collation.
J’aimerais changer la collation de la BD et des colonnes des tables pour
mais je n’y arrive pas.

Soit la collation de la base est ok mais pas celles des colonnes, où alors
je perds mon accentuation lors du transfert de Data. Je ne sais vraiment pas
comment m’y prendre.

De l’aide svp.




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Fred BROUARD
Bonjour

Il n'y a pas d'autre moyen que de migrer toutes les données :
1) créer une nouvelle base avec la nouvelle collation
2) migrer les données de chaque table à l'aide de l'ordre SQL "INSERT INTO ...
SELECT ... " en spécifiant une clause COLLATE pour chaque colonne
3) supprimer la base source
4) modifier le nom de la base cible.

Car la modification d'une collation (ALTER DATABASE..., ALTER TABLE...) ne vaut
que pour les nouvelles données, pas celles en cours.

MAIS, toute ceci ne donnera pas une base très performante et cela pour deux
raisons :
1) la collation sur laquelle repose toute les données est celle du serveur.
Toute autre colation au niveau base ou colonne, se superpose à celle du serveur.
2) la collation que vous avez choisit 'SQL_Latin1_General_CP850_CI_AI' est une
collation non Windows qui est par essence moins performante, car elle ne repose
pas sur une page de code Windows et nécessite donc plusieurs transformation.

Si vous voulez des performances il vaut mieux installer votre serveur avec la
collation Windows la mieux adpatée à votre problématique et si possible binaire.
Ne dévier ce cette collation que pour quelques colonnes très particulières.

Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/sqlserver/collations/

A +

Geko a écrit:
Bonjour,

Voici mon problème : J’ai une base SQL2000 avec Latin1_General_CI_AI comme
collation avec des tables ayant des colonnes avec la même collation.
J’aimerais changer la collation de la BD et des colonnes des tables pour
mais je n’y arrive pas.

Soit la collation de la base est ok mais pas celles des colonnes, où alors
je perds mon accentuation lors du transfert de Data. Je ne sais vraiment pas
comment m’y prendre.

De l’aide svp.




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************