Error al modificar clave primaria

11/04/2005 - 08:48 por Carlos | Informe spam
Hola, mi problema es que tenia una clave primaria con tres campos, pero
por diseño se me ha pedido que se quede con dos campos, el problema es
que la modifico con la herramienta de administración y me sale el
siguiente error:

Tabla 'candidato_contratacion'
- No se puede crear el índice 'PK_candidato_contratacion'.
Error ODBC: [Microsoft][ODBC SQL Server Driver][SQL Server]CREATE UNIQUE
INDEX terminated because a duplicate key was found for index ID 1. Most
significant primary key is '15'.
[Microsoft][ODBC SQL Server Driver][SQL Server]Could not create
constraint. See previous errors.
[Microsoft][ODBC SQL Server Driver][SQL Server]The statement has been
terminated.

Alguien sabría decirme como solucionarlo limpiamente.

Una forma seria crear una copia de la tabla , borrar la tabla ,
recrearla con los dos indices y voila, pero no deseo hacer ese proceso
sino es imprescindible

Gracias
 

Leer las respuestas

#1 Ricardo Passians
11/04/2005 - 13:01 | Informe spam
Debe ser porque al eliminar un tercer campo, los otros dos se repiten en dos
o más registros. Haz primero el update correspondiente para asegurar que no
se repitan los valores de las dos columnas que quedarán en la clave
primaria.

"Carlos" wrote in message
news:
Hola, mi problema es que tenia una clave primaria con tres campos, pero
por diseño se me ha pedido que se quede con dos campos, el problema es
que la modifico con la herramienta de administración y me sale el
siguiente error:

Tabla 'candidato_contratacion'
- No se puede crear el índice 'PK_candidato_contratacion'.
Error ODBC: [Microsoft][ODBC SQL Server Driver][SQL Server]CREATE UNIQUE
INDEX terminated because a duplicate key was found for index ID 1. Most
significant primary key is '15'.
[Microsoft][ODBC SQL Server Driver][SQL Server]Could not create
constraint. See previous errors.
[Microsoft][ODBC SQL Server Driver][SQL Server]The statement has been
terminated.

Alguien sabría decirme como solucionarlo limpiamente.

Una forma seria crear una copia de la tabla , borrar la tabla ,
recrearla con los dos indices y voila, pero no deseo hacer ese proceso
sino es imprescindible

Gracias

Preguntas similares