2 bases de datos y una sola transacción

Hola. Estoy realizando en VB.NET una aplicación que copie(y elimina del origen) los datos de ciertas tablas de una base de datos a otras tablas en otra base de datos.
Quiero que este proceso sea transaccional, es decir, que o se copie todo o no se mueva nada.
Tengo declarados dos objetos SQLTransaccion, uno para cada base de datos, por lo que cuando ya he hecho todas las operaciones hago:
sqlTransDestino.Commit()
sqlTransOrigen.Commit()
El problema es que si no se ejecuta bien sqlTransOrigen ya no puedo hacer un Rollback con la base de datos destino.
¿Cómo puedo controlar esto? Porque supongo que es necesario una transacción por cada base de datos(en la declaración hay que decir la ruta de la base de datos), ¿no?
Bueno si alguien ha entendido algo y me quiere contestar muchas gracias por adelantado...

1 respuesta

Respuesta
1
Solo si son pocas tablas entonces las podrías unir dentro de la misma ejecución...
En vez de correr origen y destino,
en la sentencia podrías mencionar el prefijo de la base y correrla en otra
Me explico
insert (algo) into Destino.dbo.tabla (y ejecutar en Destino)
luego
delete (algo) Origen.dbo.Tabla (y ejecutarla en destino tambien)
Eso funciona, y te permite hacer una transacción en una sola base, por lo que si falla, haces un solo rollback.
Dejame saber si te ayudé.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas