IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Problème de collation entre 2 DB


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut Problème de collation entre 2 DB
    Bonjour à tous !

    Je viens vers vous car je suis un peu perdu...

    Commençons par planter le décor. Il y a une première DB donc la collation est French_CI_AS et une deuxième DB dont la collation est Latin1_General_CI_AS.

    Lorsque je veux faire une requête qui lie ces deux DB, j'obtiens une erreur avec le message suivant :

    Cannot resolve the collation conflinct between "French_CI_AS" and "Latin1_General_CI_AS" in the equal to operation.
    Enfin, une des deux DB vient du serveur local d'un de mes collègues. J'imagine que lors de l'installation de son serveur, il a du choisir french comme collation du serveur et que maintenant, ça entre en conflit (youpie'-_-).

    J'ai donc modifié la collation de la table en French pour la mettre en Latin mais il semble que les colonnes des tables restent en French malgré tout et donc mon erreur persiste.

    Ma question est donc double :

    - Existe un moyen de convertir vers la bonne collation dans la requête ?
    - Est-il possible de créer une requête qui va aller changer la collation de toutes les colonnes de toutes les tables de la DB en French pour y mettre Latin1 ? (je n'ai jamais préciser de collation lorsque j'ai écrit un ordre create table... du coup, je suis perplexe).

    Merci d'avance pour l'aide précieuse que vous pourrez m'apporter.

    Griftou.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour

    A première vue, le choix des collations parait annondin, c'est par la suite que les choses se corse.
    néanmoins, dans une requete, vous pouvez spécifier la collation à utiliser

    par exemple dans le cas d'une simple vérification d'égalité, vous pouvez faire :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT *
    FROM DB1.UneTable T1
    INNER JOIN DB2.UneAutreTable T2
        ON T1.ID = T2.ID
    WHERE T1.UneColonne = T2.UneAutreColonne COLLATE French_CI_AS

  3. #3
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    ok, ça a l'air de fonctionner. NICE !!


    Par contre, j'dois avoir un problème avec les outer join... Va falloir que je retourne jeter un oeil sur les articles de sqlpro...

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Par contre pour le futur, histoire de ne pas devoir mettre collate à chaque fois (car ce french ne devrait pas être), comment puis-je changer la collation partout en une fois ?

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Vous pouvez le spécifier :

    - à l'installation de SQL Server et ce n'est pas modifiable par la suite
    - à la création de chaque base de données

    Dans le deuxième cas :

    - Si vous le faites avec l'UI de SQL Server Management Studio, lorsque vous êtes dans l'assistant, vous pouvez spécifier la collation dans la page Options

    - Soit en requête, avec la clause COLLATE

    @++

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Bonjour,

    Vous pouvez le spécifier :

    - à l'installation de SQL Server et ce n'est pas modifiable par la suite
    - à la création de chaque base de données

    Dans le deuxième cas :

    - Si vous le faites avec l'UI de SQL Server Management Studio, lorsque vous êtes dans l'assistant, vous pouvez spécifier la collation dans la page Options

    - Soit en requête, avec la clause COLLATE

    @++
    Ca a l'air tout con et pourtant, j'ai l'impression que quelque chose m'échappe...

    Je suis management studio. J'ai changé la collation de la DB. Cela a bien modifié la collation des tables qu'elle contient mais pas des colonnes se trouvant dans les tables.

    Est-ce normal ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/10/2004, 15h08
  2. Problèmes de compatibilité entre sdk 9.0c et geforce 2/4
    Par Francky033 dans le forum DirectX
    Réponses: 2
    Dernier message: 01/10/2004, 14h22
  3. problème de "collation" dans un UNION
    Par bilb0t dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 15/06/2004, 12h12
  4. Problème avec COLLATE FR_FR
    Par nico27 dans le forum SQL
    Réponses: 4
    Dernier message: 27/02/2004, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo