SQL server erreur de mise à jour - Msg 2627

Je suis en train de mettre à jour ma table "appel d'offres".

Il a ces colonnes:

  • réquisition n(rq_no)
  • réquisition de l'année(rq_year)
  • numéro de l'offre(te_no)
  • te_date
  • te-due_date
  • statut de monnaie(te_status)
  • te_year

J'ai essayé le code ci-dessous:

update tender 
set te_status='D'
where rq_no like 'Q052401C' AND te_year like '2012' and te_no like 'n0066'

si je place une autre caractère à la place de 'D' dans te_status, la mise à jour est réussie, sauf pour "D"
par exemple:

set te_status='S'

Quand je lance

SELECT * FROM TENDER
WHERE
    rq_no LIKE 'Q052401C' AND te_year LIKE '2012' AND te_no LIKE 'n0066'

il renvoie une seule ligne.

Il m'indique l'erreur suivante:

Msg 2627, Niveau 14, État 1, Ligne 1
La Violation de la contrainte de CLÉ PRIMAIRE 'PK_tender'.
Impossible d'insérer une clé en double dans l'objet 'dbo.offres'.
La valeur en double est (N0066, Q052401C, D, 2012)
La déclaration a été résilié.

Est-ce que tout cela signifie?

InformationsquelleAutor user2168350 | 2013-03-14