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