Je déplace des enregistrements d'une base de données à une autre, dans le cadre du processus d'archivage. Je souhaite copier les lignes dans la table de destination, puis supprimer les mêmes lignes de la table source.
Ma question est, quel est le moyen le plus efficace de vérifier si la première insertion a réussi avant de supprimer les lignes.
Mon idée est la suivante, mais je pense qu'il y a une meilleure façon:
@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)
Est-il préférable / possible de le combiner avec la fonction RAISERROR? Je vous remercie!