Przenoszę rekordy z jednej bazy danych do drugiej w ramach procesu archiwizacji. Chcę skopiować wiersze do tabeli docelowej, a następnie usunąć te same wiersze z tabeli źródłowej.
Moje pytanie brzmi: jaki jest najbardziej efektywny sposób sprawdzenia, czy pierwsza wstawka zakończyła się pomyślnie przed usunięciem wierszy.
Mój pomysł jest taki, ale wydaje mi się, że istnieje lepszy sposób:
@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)
Czy lepiej / jest możliwe połączenie go z funkcją RAISERROR? Dziękuję Ci!