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

Développement SQL Server Discussion :

UPDATE avec 2 collations différentes


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Par défaut UPDATE avec 2 collations différentes
    Bonjour,

    J'ai 2 bases sur 2 serveurs différents
    Dans les 2 bases j'ai le même numéro de client
    J'essaye de faire un update d'une base avec des données de l'autre base
    Quelque chose du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	update serveur1.CLIENT
    	set CLI_COMPTE = COMPTE
    	from serveur1.client c ,  serveur2.client i
    	where c.CLI_COMPTE=i.COMPTE
    J'ai ce message d'erreur
    Impossible de résoudre le conflit de classement entre "French_CI_AS" et "SQL_Latin1_General_CP1_CI_AI" dans l'opération equal to.
    Est-il possible de "forcer" les collation dans une requête de ce type.
    Ou dois-je passer par un curseur ?

    Merci par avance.
    Bonne journée.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    D'abord de toute évidence il s'agit de littéraux et non de numéro.

    Ensuite un curseur ne changerait rien à la requête et ce serait pire en termes de perf. !

    Il suffit simplement d'utiliser l'opérateur COLLATE de collation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    update c
    set    CLI_COMPTE = COMPTE
    from   serveur1.client AS c  
           JOIN serveur2.client AS i
               ON c.CLI_COMPTE = i.COMPTE COLLATE French_CI_AI
    Au passage je ne voit pas du tout l'intérêt d'une telle requête !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Par défaut
    Merci.

    Le set CLI_COMPTE = COMPTE est en fait un set cli_numintra = num_intra

    Pour récupérer les numéros intra communautraires à partir d'un serveur comptable.
    En fait j'ai d'autres conditions et je plaçais mal le collate dans ma requête (après un where)

    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. update avec deux tables différentes
    Par vaness303 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/05/2009, 12h09
  2. UPDATE avec des variables Delphi ...
    Par Kokito dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/03/2004, 22h35
  3. Requete d'update avec concatenation !!
    Par chris92 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/02/2004, 12h05
  4. [version] Requete Update avec différentes versions de mySQL
    Par regbegpower dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/01/2004, 17h19
  5. Pb Update avec chaine de caractere
    Par JuJu° dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/05/2003, 15h58

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