SQL Server - Violation of PRIMARY KEY constraint

 
Vista:

Violation of PRIMARY KEY constraint

Publicado por JoseM (65 intervenciones) el 16/02/2007 15:59:32
Buenas tardes, intento insertar en una tabla una select de varias tablas pero me sale el siguiente mensaje:

Violation of PRIMARY KEY constraint 'PK_TABLA2_1'. Cannot insert duplicate key in object 'TABLA2'.
The statement has been terminated.

Una ayuda por favor.

En alguna web de microsoft pone q es fallo del producto y hay que meter el SP2.
La versión que tengo es SQL 2000 8.00.760 pero antes de andar modificando nada en el SQL SERVER prefiero estar seguro que ese es el fallo.
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

RE:Violation of PRIMARY KEY constraint

Publicado por Unomásnomás (11 intervenciones) el 16/02/2007 16:23:57
Yo creo q en verdad existe un duplicado de algun campo que pides que tenga un valor único.... Para salir de dudas te recomendaria que conviertas ese insert con select uses el select y lo ordenes x esa columna para q conozcas los valores en caso sean pocas filas... pero si son muchas filas.. usa un select q te muestre los posibles duplicados con el Group By y el Having Count(*) > 1 ... algo asi.. espero te sirva esto...
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

RE:Violation of PRIMARY KEY constraint

Publicado por JoseM (65 intervenciones) el 16/02/2007 16:33:43
Es posible que tengas razón, te comento:

Antes de hacer el INSERT hice la SELECT, primero con una tabla, y me salían pocos registros. Cuando tuve que agregar un par de campos de otra tabla y poner el JOIN en la consulta el resultado ya se desbordaba a pesar que le especifico los campos de la tabla que quiero.

SELECT FECHA=D.FECHA,,X.TELEFONO,,D.HORAEXT
FROM
AMBULAN.DBO.DIARIO D
JOIN AMBULAN.DBO.EXTRAS X ON D.FECHA = X.FECHA

Como remedio añadí a la consulta GROUP BY por lo que ya me salían los datos correctamente.

El problema vuelve a surgir ya que al poner el INSERT me he dado cuenta que tengo que meter más valores a parte de los de esa consulta para rellenar la tabla, valores fijos como: '',0 o NULL. Por lo que la SELECT quedaría:

SELECT FECHA=D.FECHA,,X.TELEFONO,,D.HORAEXT,'',0,NULL
FROM
AMBULAN.DBO.DIARIO D
JOIN AMBULAN.DBO.EXTRAS X ON D.FECHA = X.FECHA. Y haciéndolo así ya me vuelven a salir mucho más resultados, creo que valores de la segunda tabla.

:S espero no haber liado,... Y gracias!!
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

RE:Violation of PRIMARY KEY constraint

Publicado por Isaías (3308 intervenciones) el 16/02/2007 19:00:54
JoseM

Te sugiero que si los valores son FIJOS, coloques DEFAULT a tus campos, para no tener que hacer mencion de ellos en el INSERT.
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

RE:Violation of PRIMARY KEY constraint

Publicado por JoseM (65 intervenciones) el 19/02/2007 08:02:51
Gracias Isaías, no se muy bien a lo que te refieres pero lo miraré.
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

RE:Violation of PRIMARY KEY constraint

Publicado por Isaías (3308 intervenciones) el 19/02/2007 19:41:56
Cuando se crean las tablas, algunas columnas podrian llevar datos por DEFAULT, por ejemplo, FECHA DE REGISTRO

CREATE TABLE CLIENTE (IDCte INT PRIMARY, Nombre VACHAR(60), FechaRegistro DATETIME DEFAULT(GETDATE()))

Asi cuando inserto valores:

INSERT INTO CLIENTE (IDCte, Nombre) VALUES(1, 'MARIO MENDEZ')
INSERT INTO CLIENTE (IDCte, Nombre) VALUES(2, 'ROSARIO JIMENEZ')

La columna FechaRegistro, tendra la fecha del sistema.

Saludos.
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

RE:Violation of PRIMARY KEY constraint

Publicado por JoseM (65 intervenciones) el 20/02/2007 08:07:30
Se agradece la explicación Isaías, ayer anduve muy liado para mirarlo y hoy me lo has dejado en bandeja. Thanks.

He estado haciendo varias pruebas y el problema es cuando intento insertar un campo de otra tabla, es decir, tengo tabla A, tabla B y tabla C. Quiero insertar datos en Tabla C, todos los campos que meteré serán de tabla A a excepción de un campo de Tabla B (telefono), cuando hago eso me da ese error.
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

RE:Violation of PRIMARY KEY constraint

Publicado por Isaías (3308 intervenciones) el 21/02/2007 21:43:30
Es porque se esta violando la LLAVE PRIMARIA (PRIMARY KEY), o sea, se repite mas de un registro.
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