這是我的表:SQL - 違反主鍵對更新
我做到這一點要求:
UPDATE efep SET efep.ID_ETAT_PERSONNE = 9
FROM ETAT_FICHE_ETAT_PERSONNE efep
WHERE efep.ID_ETAT_PERSONNE IN (2,3,7) AND NOT EXISTS (
SELECT 1
FROM ETAT_FICHE_ETAT_PERSONNE efep2
WHERE efep2.ID_ETAT_PERSONNE = 9 and efep2.ID_ETAT_PERSONNE = efep.ID_ETAT_PERSONNE);
我有這個錯誤:
Msg 2627, Level 14, State 1, Line 127
Violation of PRIMARY KEY constraint 'PK_ETAT_FICHE_ETAT_PERSONNE'. Can not insert duplicate key in object 'dbo.ETAT_FICHE_ETAT_PERSONNE'.
The statement has been terminated.
爲什麼錯了..?
主鍵:
ALTER TABLE [dbo].[ETAT_FICHE_ETAT_PERSONNE] ADD CONSTRAINT [PK_ETAT_FICHE_ETAT_PERSONNE] PRIMARY KEY CLUSTERED
(
[ID_ETAT_FICHE] ASC,
[ID_ETAT_PERSONNE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
該查詢仍然會出錯,出現'Duplicate Primary key violation error'錯誤。 –
@ M.Ali Yup,你說得對。 – sagi