Hola, gracias por las respuestas.
Neftalí, la tabla tiene bastantes registros porque se tratan precisamente de históricos, la tabla-B es un histórico acumulado de todo lo que hay en tabla-A, así que como todos los históricos, cada vez será más y más grande.
Aunque el método que has indicado es una muy buena idea, muy simple y efectiva.
El método indicado por Caral de obtener los campos desde las tablas del sistema, luego crear la sentencia sql dinámicamente, como también ha indicado fjcg02, es muy factible, y también funciona, seguro.
Lo que voy a hacer es probar ambas formas, me quedaré con la que sea más rápida de ejecución. Y si son muy similares... lo echaré a cara o cruz
Gracias de nuevo, ambas soluciones son estupendas y es justo lo que estaba buscando.