Hola al grupo,
Tengo dos tablas A (maestra) y B (Detalle) de manera que ambas tablas están
relacionadas a través de un campo ID. El campo ID de la tabla A es índice
único y el campo ID de la tabla B puede repetirse. Necesito insertar
registros desde dos tablas externas que tienen la misma estructura. El
problema radica en generar el mismo ID para ambas tablas destino.
He intentado hacer lo siguiente:
WITH Origen As
(SELECT (select top 1 id from A order by id desc)+Dense_Rank() over (order
by id) As Id, campoA, campoB from tablaexternaA INNER JOIN tablaexternaB ON
tablaexternaA.Id=tablaexternaB.Id)
INSERT A SELECT Id, Max(campoA) FROM Origen GROUP BY Id
INSERT B SELECT Id, campoB FROM Origen
Primero he generado el campo índice ID a partir del último registro de la
tabla maestra A y con la instrucción Dense_Rank() se generan los sucesivos
IDs duplicados de la tabla B. Pero claro la instrucción WITH solo permite
ejecutar un solo INSERT. ¿Como puedo ejecutar el otro INSERT utilizando la
misma consulta Origen? ¿Existe otra manera de hacer esto?
José Antonio Muñoz.
Leer las respuestas