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

Langage SQL Discussion :

[SQL Server] Insert into entre BDD identiques


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 13
    Points : 11
    Points
    11
    Par défaut [SQL Server] Insert into entre BDD identiques
    Bonjour je dois fusionner 6 bases de données en une seule.
    jusque la pas de probleme car mes tables n'avait qu'une clé donc assez facile de faire une requette afin de ne pas importer de doublons.
    Mais la je m(attaque a des tables qui ont deux voir 3 clés.

    j'ai donc fais un select avec un LEFT JOIN, le select fonctionne parfaitement et j'ai vérifié les données affichés sont correctes et sans doublons, mais le problemes c'est que des que je rajoute le INSERT INTO j'ai une erreur.

    insert into aertec.dbo.fur
    SELECT *
    FROM sqlbase1.dbo.fur
    left join aertec.dbo.fur ON (sqlbase1.dbo.fur.codefourniture=aertec.dbo.fur.codefourniture and sqlbase1.dbo.fur.codefournisseur=aertec.dbo.fur.codefournisseur)
    WHERE aertec.dbo.fur.codefourniture IS NULL AND aertec.dbo.fur.codefournisseur IS NULL

    Serveur*: Msg 213, Niveau 16, État 5, Ligne 1
    Erreur INSERT : le nom ou le numéro de colonne des valeurs fournies ne correspondent pas à la définition de la table.

    Cependant si je precise quel champ sur lesquels porte le INSERT INTO cela fonctionne.

    insert into aertec.dbo.fur (CodeFourniture, CodeFournisseur)
    SELECT sqlbase1.dbo.fur.CodeFourniture, sqlbase1.dbo.fur.CodeFournisseur
    FROM sqlbase1.dbo.fur
    left join aertec.dbo.fur ON (sqlbase1.dbo.fur.codefourniture=aertec.dbo.fur.codefourniture and sqlbase1.dbo.fur.codefournisseur=aertec.dbo.fur.codefournisseur)
    WHERE aertec.dbo.fur.codefourniture IS NULL AND aertec.dbo.fur.codefournisseur IS NULL

    j'ai l'impression que si je précise pas les champs il ne sait pas dans quel ordre les ecrire.
    je ne peux pas taper tous les champs j'en ai plus de 100 par table et une bonne 20aine de table comme ceci a traiter.

    avez vous une idée du probleme.

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par emilie1t
    Cependant si je precise quel champ sur lesquels porte le INSERT INTO cela fonctionne.
    ...
    j'ai l'impression que si je précise pas les champs il ne sait pas dans quel ordre les ecrire.
    ...
    avez vous une idée du probleme.
    Tu l'as parfaitement cerné, le problème : un "SELECT *" ne dois être utilisé qu'avec parcimonie, pour des requêtes d'exemples ou autre. Sinon, en règle générale, il faut préciser la liste des champs, même si ça prend un peu de temps à taper

Discussions similaires

  1. [SQL Server] Calcul durée entre 2 dates sans les dimanches
    Par sarahsonia dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/04/2006, 18h59
  2. [SQL Server] INSERT avec clef sur n° auto
    Par Monstros Velu dans le forum Langage SQL
    Réponses: 9
    Dernier message: 31/03/2006, 18h54
  3. [SQL Server] Insert - imposer un identifiant
    Par liliprog dans le forum Langage SQL
    Réponses: 9
    Dernier message: 16/03/2006, 11h01
  4. Réponses: 9
    Dernier message: 17/03/2005, 10h20
  5. [C#][SQL Server] Insertion de données inversées
    Par lamiae18 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 20/04/2004, 17h11

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