Sto spostando i record da un database all'altro, come parte del processo di archiviazione. Voglio copiare le righe nella tabella di destinazione e quindi eliminare le stesse righe dalla tabella di origine.
La mia domanda è: qual è il modo più efficiente per verificare se il primo inserimento ha avuto esito positivo prima di eliminare le righe.
La mia idea è questa, ma sento che c'è un modo migliore:
@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)
È meglio / possibile combinarlo con la funzione RAISERROR? Grazie!