Bij het toevoegen van een primary key op de tabel PARAMS, is het onmogelijk om de constraint van de primary key te definiƫren

0000002709     -      29-06-2017

Bij de verificatie van de structuur (Geavanceerde tools), kan Mercator vragen om een primary key te installeren die ontbreekt op PARAMS. Hij stelt dan volgend script voor:

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)

De volgende fout kan gegenereerd worden:

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.

In dit geval moet men deze SQL-query op voorhand uitvoeren:

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

 

Sleutelwoorden: create unique index, duplicate key, structuur controleren