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 :

insertion avec un select


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut insertion avec un select
    bonjour tout le monde ,
    je suis entrain inserer des données de deux tables(d'une base X) vers une table de la base Y.
    la table de la base Y a été creer par rapport à quelques champs des deux tables de la base X.
    Malheureusement je reçois ce message d'erreur..

    "Violation de la contrainte PRIMARY KEY 'pk_courrier_sid'. Impossible d'insérer une clé en double dans l'objet 'dbo.courrier'.
    L'instruction a été arrêtée."
    y a t il quelqu'un qui pourra m'expliquer ou m'aider a corriger cette erreur.
    Je vous remercie d'avance.
    voici ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    INSERT INTO [sfn_TT].[dbo].[courrier]
    (CODE_COURRIER,
    MODE_COURRIER,
    REFERENCE_COURRIER ,
    DATE_EMISSION_COURRIER , 
    CREATEUR , 
    ATTENTION_COURRIER,
    CODE_NATURE,
    DESTINATION ,
    DATE_ARRIVE_COURRIER , 
    SOCIETE ,
    NECESSITE_REPONSE , 
    AFFECTER , 
    DATE_CLOTURE , 
    DATE_limite )
    select
    CRR.CODE_COURRIER,
    CRR.MODE_COURRIER,
    CRR.REFERENCE_COURRIER ,
    CRR.DATE_EMISSION_COURRIER , 
    CRR.CREATEUR , 
    CRR.ATTENTION_COURRIER,
    CRR.CODE_NATURE,
    CRR.DESTINATION ,
    CRR.DATE_ARRIVE_COURRIER , 
    CRR.SOCIETE ,
    CRA.NECESSITE_REPONSE , 
    CRA.AFFECTER , 
    CRA.DATE_CLOTURE , 
    CRA.DATE_limite
    from
    TA.dbo.COURRIER CRR
    inner join TA.dbo.COURRIER_AFFECTER CRA
    on CRR.CODE_COURRIER=CRA.CODE_COURRIER

  2. #2
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Bonjour,

    Dans votre cas, la query ne pose pas de soucis (à priori) mais votre problème se situe au niveau des données.
    Lors de votre insertion, vous violer la clé primaire 'pk_courrier_sid' se trouvant sur la table [sfn_TT].[dbo].[courrier].
    C'est à dire qu'au moins une ligne que vous inserez contient les même valeurs qu'une autre ligne de la table ou qu'une autre ligne de votre insertion pour les colonnes composant la clé primaire définie sur votre table.

    Vous pouvez soit filtrer votre query pour exclure ces lignes, soit implementer une règle de gestion diffrente en fonction de ce que vous souhaitez réaliser.

    Comme vous ne nous avez pas dit ce que vous voullez faire, de quelle(s) colonne(s) se compose votre clé primaire et le reste, on ne peut vous en dire plus.

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 67
    Par défaut
    vous avez raison,j ai exécuté uniquement ma requête "select" et effectivement je trouve que la clé primaire se répéter avec des informations differente pour chaque ligne..
    je pense pour mon cas qu il vaut mieux créer une table avec une clé primaire composée(le code_courrier et aussi code incrémentale..
    je vous remercie pour votre aide et aussi pour la rapidité de votre réponse.

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

Discussions similaires

  1. [INSERT][SELECT] insert avec un select imbriqué
    Par narmataru dans le forum SQL
    Réponses: 11
    Dernier message: 06/03/2013, 03h04
  2. insert avec un select imbriqué
    Par sebastien00 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/06/2008, 12h45
  3. Requete insertion avec des select
    Par miketidy dans le forum Requêtes
    Réponses: 1
    Dernier message: 18/05/2008, 10h36
  4. Problème Insert avec un Select
    Par LhIaScZkTer dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/06/2007, 11h57
  5. pb d'insertion avec un SELECT sur une autre table
    Par epeichette dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/01/2005, 22h58

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