Salut tout le monde,
Ca fait une petite heure que je cherche et je trouve plein de solutions, mais pas la bonne apparemment.
Je cherche à créer 3 tables avec des clés étrangère via le code suivant :
Mais j'obtiens toujours le même message d'erreur sur la création de la dernière clé étrangère :
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
35
36
37 USE TEST GO CREATE TABLE TEST_PRODUIT( CODFOUR varchar(6) NOT NULL, CODPDT varchar(6) NOT NULL, CODGEN varchar(13) NOT NULL, Designation varchar(30) NOT NULL, DateMAJ datetime NOT NULL CONSTRAINT PK_TEST_PRODUIT PRIMARY KEY (CODFOUR, CODPDT, CODGEN) ) GO USE TEST GO CREATE TABLE TEST_TYPE_TARIFS( TypeTarif varchar(3) NOT NULL, Designation varchar(30) NOT NULL CONSTRAINT PK_TEST_TYPE_TARIFS PRIMARY KEY (TypeTarif) ) GO USE TEST GO CREATE TABLE TEST_TARIFS( CODPDT varchar(6) NOT NULL, CODGEN varchar(13) NOT NULL, TypeTarif varchar(3) NOT NULL, Prix decimal(7,2) NOT NULL, DateMAJ datetime NOT NULL CONSTRAINT PK_TEST_TARIFS PRIMARY KEY (CODPDT, CODGEN, TypeTarif) ) GO USE TEST GO ALTER TABLE TEST_TARIFS ADD CONSTRAINT FK_TEST_TARIFS_TEST_TYPE_TARIFS FOREIGN KEY(TypeTarif) REFERENCES TEST_TYPE_TARIFS (TypeTarif) GO USE TEST GO ALTER TABLE TEST_TARIFS ADD CONSTRAINT FK_TEST_TARIFS_TEST_PRODUIT FOREIGN KEY(CODPDT, CODGEN) REFERENCES TEST_PRODUIT (CODPDT, CODGEN)
En cherchant des infos sur ce message d'erreur j'ai lu que mes colonnes référencées comme clés étrangères n'était pas des clés primaires dans les autres tables, pourtant si (ou bien j'ai loupé quelque chose ?).Msg 1776, Niveau 16, État 0, Ligne 1
Aucune clé primaire ou candidate dans la table référencée 'TEST_PRODUIT' ne correspond à la liste des colonnes de référence de la clé étrangère 'FK_TEST_TARIFS_TEST_PRODUIT'.
Msg 1750, Niveau 16, État 0, Ligne 1
Impossible de créer la contrainte. Voir les erreurs précédentes.
Les champs des clés étrangères sont respectivement du même type, les tables et les clés sont déclarées dans un ordre logique.
Bref je sèche.
Quelqu'un a une autre idée ? Je suis sous SQL Server 2005.
Partager