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 :

Je vois pas d'où vient mon erreur!! Aidez moi SVP


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Je vois pas d'où vient mon erreur!! Aidez moi SVP
    Voilà (une partie de) mon script :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE SESSION_PROGRAMMEE
     (
       NUM_SESSION CHAR(32) NOT NULL  ,
       DATE_DEBUT_SESSION datetime NOT NULL  ,
       NUM_SESSION_EST_PROGRAMMEE INT NOT NULL references SESSION_CATALOGUE(NUM_SESSION) ,
       ID_CENTRE INT NOT NULL references CENTRE(ID_CENTRE) ,
       DATE_FIN_SESSION datetime NOT NULL  ,
       NB_PLACE_MAX_SESSION INT NOT NULL  ,
       DATE_LIM_INSCRIPTION_SESSION datetime NOT NULL  ,
       SEUIL_ANNULATION_SESSION INT NOT NULL  ,
       ETAT_SESSION_SESSION CHAR(32) NOT NULL , 
       PRIMARY KEY (NUM_SESSION,DATE_DEBUT_SESSION) 
     );
    jusque là tout va bien...

    Le problème c'est la table qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE COMPOSE
     (
       ID_COURS INT NOT NULL REFERENCES COURS (ID_COURS) ,
       NUM_SESSION CHAR(32) NOT NULL REFERENCES SESSION_PROGRAMMEE (NUM_SESSION) ,
       DATE_DEBUT_SESSION datetime NOT NULL REFERENCES SESSION_PROGRAMMEE (DATE_DEBUT_SESSION) , 
       PRIMARY KEY (ID_COURS,NUM_SESSION,DATE_DEBUT_SESSION) 
     );
    ça m'affiche l'erreur : Serveur : Msg 1776, Niveau 16, État 1, Ligne 1
    Aucune clé primaire ou prototype dans la table référencée 'SESSION_PROGRAMMEE' ne correspond à la liste des colonnes de référence de la clé étrangère 'FK__COMPOSE__NUM_SES__5070F446'.


    Je ne comprends pas pourquoi mais ma table COMPOSE n'accepte pas les réfèrences vers la table PROGRAMMEE.

    Si vous savez pourquoi dites le moi, ça m'évitera une grosse prise dde tête


    Merci par avance

    *Aurélie*

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Je crois que tu déclares mal tes clés étrangères déjà, tu oublies de dire ...que ce sont FK :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ID_COURS INT NOT NULL FOREIGN KEY REFERENCES COURS (ID_COURS) ,
    Tu as essayé en déclarant tes clés primaires comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONSTRAINT PK_TA_CONTRAINTE PRIMARY KEY (NUM_SESSION, DATE_DEBUT_SESSION)),
    :
    ça devrait fonctionner normalement.
    PS : tu crées bien ta table PROGRAMMEE avant COMPOSE qu'en même :

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Ca vient pas que de ça
    J'ai modifié la table compose (que je crée en effet après mes tables auquelles je fais référence) de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE COMPOSE
     (
       ID_COURS INT NOT NULL FOREIGN KEY REFERENCES COURS (ID_COURS) ,
       NUM_SESSION CHAR(32) NOT NULL FOREIGN KEY REFERENCES SESSION_PROGRAMMEE (NUM_SESSION) ,
       DATE_DEBUT_SESSION datetime NOT NULL FOREIGN KEY REFERENCES SESSION_PROGRAMMEE (DATE_DEBUT_SESSION) , 
       CONSTRAINT PK_TA_CONTRAINTE PRIMARY KEY (ID_COURS,NUM_SESSION, DATE_DEBUT_SESSION)
    );
    et j'ai toujours la même erreur...

    je désespère

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    Je ne saurai trop vous conseiller l'emploi de clés primaires techniques (en identity, par exemple) plutôt que des clés primaires composites. Rien ne vous empêche de déclarer ensuite vos clés-métier en alternatives. Vous vous économiserez pas mal de soucis au niveau des déclaration...

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

Discussions similaires

  1. Problème lister dossier, je ne vois pas d'où vient l'erreur
    Par takinelinfo dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 25/01/2009, 16h30
  2. Réponses: 2
    Dernier message: 25/02/2008, 11h25
  3. [Free Pascal] Je ne vois pas l'exécution de mon algo
    Par Effendil dans le forum Free Pascal
    Réponses: 2
    Dernier message: 26/09/2007, 11h22
  4. Erreur de variable, je comprends vraiement pas :( aidez moi svp.
    Par plex dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 04/08/2006, 14h16

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