Je tente de remplacer la clé primaire d'une table de ma base de données SQL par la clé existante par une clé composite, qui n'inclut pas la colonne existante. Le code suivant ne fonctionne pas en raison des messages d'erreur suivants:Modification de la clé primaire en clé composite (la clé primaire existe déjà)
DROP PRIMARY KEY:
Syntaxe incorrecte près PRIMAIRES. COLONNE attendre, CONTRAINTE, ID ou QUOTED_ID
ADD KEY PRIMAIRE:
Syntaxe incorrecte près PRIMAIRES. Attendant ID
Code T-SQL:
ALTER TABLE AgentIdentification
DROP PRIMARY KEY Number,
ADD PRIMARY KEY (AgentId, IdIndicator)
EDIT
j'ai pu accomplir cela en utilisant les deux instructions de requête suivants
ALTER TABLE AgentIdentification
DROP CONSTRAINT [PK_AgentId_Id]
GO
ALTER TABLE AgentIdentification
ADD CONSTRAINT pk_PersonID PRIMARY KEY (AgentId, IdIndicator)
Au lieu de demander que SQL "DROP PRIMARY KEY" J'avais besoin de le dire à "DROP CONSTRAINT", séparant aussi ces deux actions Deux requêtes ont aidé.
S'il vous plaît appeler ceci avec le SGBDR correct. SQL est _not_ une base de données; c'est une langue utilisée par beaucoup (légèrement différente dans tous les cas). – Ben
Souhaitez-vous supprimer le champ PK ou la contrainte PK? – danihp
S'il vous plaît: 1) Spécifiez votre base de données, 2) Coupez/collez le message d'erreur exact, 3) Envisagez votre commande en deux instructions "alter table", 4) Soyez conscient que vous aurez probablement besoin d'autres instructions), ou vous pourriez même devoir laisser tomber et recréer la table entière – paulsm4