Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2012, 15h56   #1
Invité régulier
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 41
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2011
Messages : 41
Points : 5
Points : 5
Par défaut Problème création des tables en SQL-Server

Salut !!!
Je veux faire une création de certains tables en SQL Server 2005, il y a toujours un erreur concernant les clés étrangers je suppose qui me gène. Voici le code :
Code :
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
35
36
37
38
39
40
41
CREATE TABLE Ouverier (
id_ouv int NOT NULL PRIMARY KEY ,
 
	nom_ouv varchar(20) ,);
CREATE TABLE Responsable(
	id_res int NOT NULL ,
    id_ouv int NOT NULL  REFERENCES Ouverier(id_ouv),
	nom_ouv varchar(20) ,
	nom_res varchar(20),
    constraint pk1 PRIMARY KEY (id_res,id_ouv),	);
CREATE TABLE Employee(
	id_emp int NOT NULL ,
    id_ouv int NOT NULL  REFERENCES Ouverier(id_ouv),
	nom_ouv varchar(20) ,
	nom_emp varchar(20),
    constraint pk2 PRIMARY KEY (id_emp,id_ouv),
	);
CREATE TABLE Entreprise(
	id_ent int NOT NULL PRIMARY KEY,
	nom_ent varchar(20),
	);
CREATE TABLE Commande(
	id_comm int NOT NULL PRIMARY KEY,
	);
CREATE TABLE Fournisseur(
	id_four int NOT NULL PRIMARY KEY,
	nom_four varchar(20),
	);
CREATE TABLE Camion(
	matricule int NOT NULL PRIMARY KEY,
	);
CREATE TABLE Produit(
	id_pdt int NOT NULL PRIMARY KEY,
	nom_pdt varchar(20) ,
	quantite int,
    seuil_min int,
	id_ouv int REFERENCES Ouverier(id_ouv),
    id_res int REFERENCES Responsable(id_res),
    code_barre int REFERENCES Lot(code_barre),
	);
commit;
Voici l'erreur généré par SQL Server 2005 :
Citation:
Msg 1776, Niveau 16, État 0, Ligne 32
Aucune clé primaire ou candidate dans la table référencée 'Responsable' ne correspond à la liste des colonnes de référence de la clé étrangère 'FK__Produit__id_res__595B4002'.
Msg 1750, Niveau 16, État 0, Ligne 32
Impossible de créer la contrainte. Voir les erreurs précédentes.
Y-a-t-il une solution ? Merci d'avance
pizzaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 22h58   #2
Membre confirmé
 
Emmanuel CHONION
Inscription : novembre 2006
Messages : 229
Détails du profil
Informations personnelles :
Nom : Emmanuel CHONION
Âge : 43
Localisation : France, Marne (Champagne Ardenne)

Informations forums :
Inscription : novembre 2006
Messages : 229
Points : 298
Points : 298
Bonsoir,

La clé de la table Responsable devrait être juste sur id_res, ou alors dans la fk de produit tu mets les 2... mais ça n'a pas d'intérêt.

Aussi le lot n'existe pas.

Au passage pourquoi ne pas utiliser la création de SSMS et générer le script, qui sera ainsi nickel ?
EMC51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h45.


 
 
 
 
Partenaires

Hébergement Web