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
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
0