Estoy moviendo registros de una base de datos a otra, como parte del proceso de archivo. Quiero copiar las filas a la tabla de destino y luego eliminar las mismas filas de la tabla de origen.
Mi pregunta es, ¿cuál es la forma más eficiente de verificar si la primera inserción fue exitosa antes de eliminar las filas?
Mi idea es esta, pero siento que hay una mejor manera:
@num_records=select count(ID) from Source_Table where (criteria for eligible rows)
insert * into Destination_Table where (criteria for eligible rows)
if ((select count(ID) from Destination_Table where (criteria) )=@numrecords)
delete * from Source_Table where (criteria)
¿Es mejor / posible combinarlo con la función RAISERROR? ¡Gracias!