Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Lors de l'ajout de la clé primaire sur PARAMS, impossible de définir la contrainte primary key

0000002709     -      29/06/2017

Lors de la vérification de structure (Outils avancés), Mercator peut demander d'installer une clé primaire manquante sur PARAMS. Il propose alors ce script SQL : 

ALTER TABLE [dbo].[PARAMS] 
    ADD CONSTRAINT [PARAMS_id] PRIMARY KEY CLUSTERED (TYPE) 
    WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF)

L'erreur suivante peut être rencontrée :

Error number : 1505
Impossible de définir la contrainte PRIMARY KEY dans une colonne de la table 'PARAMS' contenant une clé dupliquée. Impossible de créer la contrainte.

Dans ce cas, il faut exécuter au préalable cette commande SQL : 

select type,min(valeur) as valeur into #params_tmp from params group by type
delete from params insert into params(type,valeur) select type,valeur from #params_tmp 
drop table #params_tmp

 

Mots clés : create unique index, duplicate key, vérifier structure