J'essaie d'ajouter la clé primaire à la colonne nouvellement ajoutée dans le nom de table existant Product_Details
.
Nouvelle colonne ajoutée: Product_Detail_ID
(int
et not null
)
J'essaie d'ajouter la clé primaire à Product_Detail_ID
(veuillez noter: aucune autre clé primaire ou étrangère n'est affectée à cette table)
J'essaie avec cette requête mais j'obtiens une erreur.
ALTER TABLE Product_Details
ADD CONSTRAINT pk_Product_Detils_Product_Detail_ID PRIMARY KEY(Product_Detail_ID)
GO
Erreur:
Le
CREATE UNIQUE INDEX
l'instruction s'est terminée car une clé en double a été trouvée pour le nom de l'objet'dbo.Product\_Details'
et le nom de l'index'pk\_Product\_Detils'
. La valeur de clé en double est (0).
Est-ce que j'ai râté quelque chose? J'utilise SQL Server 2008 R2. J'apprécierais toute aide.
Si vous souhaitez que SQL Server fournisse automatiquement des valeurs pour la nouvelle colonne, faites-en une identité.
ALTER TABLE Product_Details DROP COLUMN Product_Detail_ID
GO
ALTER TABLE Product_Details ADD Product_Detail_ID int identity(1,1) not null
GO
ALTER TABLE Product_Details
add CONSTRAINT pk_Product_Detils_Product_Detail_ID primary key(Product_Detail_ID)
GO
ALTER TABLE Jaya
ADD CONSTRAINT no primary key(No);
ici Jaya
est le nom de la table,
no
est le nom de la colonne,
ADD CONSTRAINT
donnons-nous le mot-clé de la clé primaire
Vous obtenez l'erreur car vous disposez de données existantes qui ne remplissent pas la contrainte.
Il y a 2 façons de le réparer:
Dans mysql, j'ai pu réaliser avec la requête suivante
ALTER TABLE table_name ADD new_column int NOT NULL AUTO_INCREMENT primary key