Editar: Permítanme reformular esto por completo, porque no estoy seguro de que exista una forma XML como la que describí originalmente.Copia de datos relacionales de la base de datos a la base de datos
Aún otra edición: Esto tiene que ser un proceso repetible, y tiene que poder configurarse de manera que pueda llamarse en el código C#.
En la base de datos A, tengo un conjunto de tablas relacionadas por PK y FK. Una tabla principal, con tablas de hijos y nietos, digamos.
Quiero copiar un conjunto de filas de la base de datos A a la base de datos B, que tiene tablas y campos con el mismo nombre. Para cada tabla, quiero insertar en la misma tabla en la base de datos B. Pero no puedo restringirme a usar las mismas claves principales. La rutina de copia debe crear nuevos PK para cada fila en la base de datos B, y debe propagarlos a las filas secundarias. En otras palabras, mantengo las mismas relaciones entre los datos, pero no las mismas PK y FK exactas.
¿Cómo solucionaría esto? Estoy abierto a sugerencias. SSIS no está completamente descartado, pero no me parece que vaya a hacer esto exactamente. También estoy abierto a una solución en LINQ, o usando DataSets con tipo, o usando algo de XML, o casi cualquier cosa que funcione en SQL Server 2005 y/o C# (.NET 3.5). La mejor solución no requeriría SSIS, y no requeriría escribir mucho código. Pero concederé que esta "mejor" solución puede no existir.
(Yo no lo hacen esta tarea yo mismo, ni las limitaciones;. Ésta es la forma en que fue dado a mí)
Supongo que se trata de una operación única y la replicación no es una opción. – Galwegian
No, debe ser repetible; a largo plazo especificaremos qué elementos copiar (por PK en la base de datos original, por ejemplo). Como no podemos garantizar el pedido, los PK no deberían ser exactamente iguales en la nueva base de datos. La replicación no está fuera de discusión si es una buena solución. –
¿Mantiene (o puede conservar) la ID de PK original en otro campo en la base de datos de destino? –