Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Migration SQL 2000 vers 2005 et problème d'Unicode


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Migration SQL 2000 vers 2005 et problème d'Unicode
    Bonjour,

    Nous venons de réaliser une migration d'une application fonctionnant avec une base SQL 2000.

    - Nous avons donc commencé par migrer la base sous SQL 2005 : Aucun problème.
    - Ensuite nous avons réalisé la migration applicative qui a mis à jour la base de donnée (ajout de colonnes ...)

    Le problème, c'est que l'on a pas fait attention à l'unicode!
    La base sous 2000 était NON unicode et on a fait la mise à jour applicative avec l'unicode.

    Résultat, on a un mix de colonnes en char() et d'autres en nchar() et lorsque l'on veut faire des ForeignKeys entre 2 tables et bien une fois sur 2 cela plante :S


    D'où ma question, y a-t-il un moyen simple de transformer tous les char() en nchar() et d'ailleurs pareil pour le varchar?

    Merci d'avance pour votre aide car là je suis bien en galère.

  2. #2
    Rédacteur

    Simple non, il faut migrer les données. Voici une méthode que je décrit :
    http://sqlpro.developpez.com/cours/s...partie2#L7.6.1

    Evitez d'utiliser l'interface graphique SQL Management studio pour ce faire, le script pissé par SQL Server est abominable de lourdeur...

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Futur Membre du Club
    C'est bien ce que je me disais
    Bon j'esperais qu'il existe un outil permettant de dire "je veux changer toutes les colonnes de ce type vers ce type" ...

    Merci pour ta réponse, je regarde ton lien

  4. #4
    Futur Membre du Club
    Re,

    Je met une requête permettant de sortir toutes les colonnes d'un certain type, si jamais cela sert à quelqu'un ^^
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select o.name "Object Name", c.name "Column Name", t.name "Type", c.max_length "Taille"
    from sys.all_columns c, sys.systypes t, sys.objects o
    where c.object_id > 100
    and c.system_type_id = t.xtype
    and c.object_id = o.object_id
    and o.type <> 'V' -- Suppression des Vues
    and (t.name = 'char' or t.name = 'varchar') -- Choix des types

    Ensuite, j'ai exporté le résultat dans Excel et généré les requêtes d'alter table.
    Je précise que dans mon cas je ne suis pas obligé de passer par une colonne temporaire puisque je change des 'char' en 'nchar'.

    a+ et merci
    Micht

###raw>template_hook.ano_emploi###