SQL - Problema con INSERT FROM en tabla indexada

 
Vista:

Problema con INSERT FROM en tabla indexada

Publicado por Edu (1 intervención) el 23/04/2012 10:47:44
Buenos días. Es la primera vez que entro aquí, así que lo primero saludar a todos. Soy bastante ignorante en la programación, no es mi profesión (soy ingeniero), y sólo hago pequeños programas en VBA para ayudarme en mi tarea. Por tanto, disculpadme si no me expreso con la claridad que me gustaría.

Os escribo porque tengo un problema con una consulta SQL. Trato de insertar los valores de una tabla en otra de la misma base de datos de SQL server

La estructura de la tabla destino "principal" es:

id int PRIMARY KEY
Tipo int
Procedencia int
numero char(6) --> archivo
comentario

Los índices son
"id_tabla1" definido como"clustered,unique, primary key located on PRIMARY" y como key id
"id_tabla2" definido como"nonclustered,unique keylocated on PRIMARY" y como key Tipo, procedencia, numero

cuando inserto los datos a mano, el campo numero se rellena solo, este se supone que es consecutivo para cada Tipo, pero no para cada procedencia. Tambien id se rellena solo.
.

Quiero hacer un INSERT de este tipo

INSERT principal (Tipo, Procedencia,archivo, comentario)

SELECT (nTipo,nProcedencia,narchivo,ncomentario)
FROM tabla_2

El caso es que si tabla_2 tiene una sola línea, la consulta funciona perfectamente

Pero si tiene más filas y Tipo y procedencia son del mismo valor (debería entonces asignar un nuevo valor a numero) me da el error:

"Infracción de la restricción UNIQUE KEY 'id_tabla2'. No se puede insertar una clave duplicada en el objeto 'principal'

Mi pregunta es: Me parece que al hacer INSERT, no procesa los datos para dar a numero un nuevo valor, ¿Esto es así? ¿como puedo solventar esto?

Muchas gracias por adelantado
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