Estou movendo registros de um banco de dados para outro, como parte do processo de arquivamento. Quero copiar as linhas para a tabela de destino e excluir as mesmas linhas da tabela de origem.
Minha pergunta é: qual é a maneira mais eficiente de verificar se a primeira inserção foi bem-sucedida antes de excluir as linhas.
Minha idéia é essa, mas sinto que há uma maneira melhor:
@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)
É melhor / possível combiná-lo com a função RAISERROR? Obrigado!