Ajouter une colonne avec une clé primaire dans une table existante
Je suis en train d'ajouter une clé primaire nouvellement ajout de la colonne de la table existante nom Product_Details
.
Nouvelle Colonne est ajoutée: Product_Detail_ID
(int
et not null
)
Je suis en train d'ajouter la clé primaire de Product_Detail_ID
(veuillez noter: il n'y a pas d'autres primaires ou étrangères touche attribuée à cette table)
Je suis en train d'essayer avec cette requête, mais avoir d'erreur.
ALTER TABLE Product_Details
ADD CONSTRAINT pk_Product_Detils_Product_Detail_ID PRIMARY KEY(Product_Detail_ID)
GO
Erreur:
La
CREATE UNIQUE INDEX
déclaration résilié en raison d'un double de la clé n'a été trouvé 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).
Suis-je manqué quelque chose? Je suis à l'aide de SQL Server 2008 R2. Je vous serais reconnaissant de toute aide.
source d'informationauteur Joy1979 | 2012-12-17
Vous devez vous connecter pour publier un commentaire.
Si vous voulez SQL Server pour fournir automatiquement des valeurs de la nouvelle colonne, en faire une identité.
Vous obtenez l'erreur parce que vous avez déjà des données qui ne permet pas de satisfaire la contrainte.
Il y a 2 façons de résoudre le problème:
Dans mysql, j'ai pu obtenir avec la requête suivante
ALTER TABLE table_name ADD new_column int NOT NULL AUTO_INCREMENT primary key
ici
Jaya
est le nom de la table,no
est le nom de la colonne,ADD CONSTRAINT
est nous donner la clé primaire clék. ami
commande:
sql> alter table nom_table add primary key(nom_colonne);
ex: alter table pk_Product_Detils ajouter une clé primaire(Product_Detail_ID);