SQL Server - violation of PRIMARY or UNIQUE KEY constraint

 
Vista:
sin imagen de perfil

violation of PRIMARY or UNIQUE KEY constraint

Publicado por pirate666 (2 intervenciones) el 06/04/2017 10:56:11
Buenos días,

esta vez pido ayuda sobre una consulta sql para actualizar registros en una tabla. Soy nuevo con base de datos, por lo que si veis alguna barbaridad, tenedlo en cuenta.

En una base de datos tengo la tabla compra, en la cual tengo definido lo siguiente:

COMENTARIO - Varchar
FECHA - Date - Not null
ID_PERSONA - Integer - not null
ID_CONTRATO - Integer - not null
IMPORTE - Numeric(12,2)
ORIGEN - Char - not null

CONSTRAINTS:

PRIMARY KEY: IP_VENTAS_2 on fields FECHA, ID_PERSONA, ID_CONTRATO, ORIGEN

Y ahora viene el problema:

Tengo, por ejemplo, la siguiente consulta:

update compra set ID_CONTRATO='2508', PERSONA='194', FECHA='2017-01-27', IMPORTE='200.00', ORIGEN='O', COMENTARIO='ESTO ES COMENTARIO'

y me tira el siguiente error:

violation of PRIMARY or UNIQUE KEY constraint "IP_VENTAS_2" on table "COMPRAS" Problematic key value is ("FECHA" = '2017-01-27', "PERSONA" = 194, "ID_CONTRATO" = 2508, "ORIGEN" = 'O')

Por lo que entonces:

- Sé que puedo hacer el update, por ejemplo, añadiendo condiciones en un where, o de cualquier otra forma, pero todo lo que tengo después del set lo saco de un array obtenido a través de un formulario php.

- Querría saber si hay forma de montar esta update, siempre y cuando no cambie la cadena ID_CONTRATO='2508', PERSONA='194', FECHA='2017-01-27', IMPORTE='200.00', ORIGEN='O', COMENTARIO='ESTO ES COMENTARIO'

¿Alguna solución?.

Muchas gracias de antemano, un saludo!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

violation of PRIMARY or UNIQUE KEY constraint

Publicado por Jose Manuel (23 intervenciones) el 06/04/2017 18:58:36
No comprendo bien que ocupas realizar, este error te manda por que deseas cambiar una informacion de llave primaria de tu tabla, creo es la fecha la que te marca este error, lo que debes de hacer es poner esa fecha en un where fecha="@fecha" y lo que deseas cambiar dentro del set
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil

violation of PRIMARY or UNIQUE KEY constraint

Publicado por pirate666 (2 intervenciones) el 07/04/2017 09:35:56
Buenos días Jose Manuel,

gracias por tu respuesta. Efectivamente el problema estaba ahí, tenía que poner un where con esa condición.
Ahora ya funciona todo como quería.

Podéis darlo por solucionado.

Gracias de nuevo, un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar