Ajout de contrainte dans une table déjà créée

Fermé
cfg - 25 mai 2018 à 11:34
 cfg123 - 9 juin 2018 à 20:44
Bonjour,

Je suis nouveau en SQL SERVER et j'ai besoin d'aide
En effet, après avoir créer mes tables
[dbo].[ItemsItemDetails]
avec ce code: CREATE TABLE ItemsItemDetails (
ItemID INT PRIMARY KEY ( ItemID ) IDENTITY (1,1),
ItemName VARCHAR (50),
ItemDescription VARCHAR (200) NOT NULL,
QuantityInHand INT CHECK ( QuantityInHand > 0 ) ,
UnitPrice MONEY CHECK ( UnitPrice > 0 ),
ReorderQuantity INT CHECK ( ReorderQuantity > 0 ),
ReorderLevel AS (QuantityInHand - ReorderQuantity )
)
et
[dbo].[SupplierSupplierDetails] avec ce code: CREATE TABLE SupplierSupplierDetails(
SupplierID INT PRIMARY KEY ( SupplierID ) IDENTITY(1,1),
FirstName VARCHAR (30),
LastName VARCHAR (30),
Address VARCHAR (200),
Country VARCHAR (30),
Phone CHAR(12) NOT NULL CHECK ( Phone LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9]')
)
Maintenant je voudrais ajouter la contrainte avec ce code
alter table ItemsItemDetails
add constraint pk_SupplierID
foreign key references SupplierSupplierDetails(SupplierID);
Et je reçois ce message d'erreur
Msg 8139, Niveau 16, État 0, Ligne 1
Le nombre de colonnes de référence dans la clé étrangère diffère du nombre de colonnes référencées, table 'ItemsItemDetails'.

A voir également:

1 réponse

Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
25 mai 2018 à 11:43
La contrainte ne peut étre ajouter car les données présentent dans les tables ne permette pas de valider celle ci.

(en gros tu as des entrées qui ne respectent pas la contrainte que tu souhaites ajouter)

A plus
0
cfg123 Messages postés 7 Date d'inscription vendredi 25 mai 2018 Statut Membre Dernière intervention 28 mai 2018
25 mai 2018 à 15:11
Merci
J'y suis toujours. Vous pouvez me proposer une solution s'il vous plait?
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
Modifié le 25 mai 2018 à 17:17
ALTER TABLE `ItemsItemDetails`
ADD CONSTRAINT `pk_SupplierID`
FOREIGN KEY (pe_choisir_un_champ_ici) REFERENCES SupplierSupplierDetails(SupplierID);


Ce paramétre contraint l'existence de la clé SupplierSupplierDetails(SupplierID) ou SupplierSupplierDetails(SupplierID) = pe_choisir_un_champ_ici.
0