보관 프로세스의 일환으로 한 데이터베이스에서 다른 데이터베이스로 레코드를 이동하고 있습니다. 행을 대상 테이블에 복사 한 다음 소스 테이블에서 동일한 행을 삭제하려고합니다.
내 질문은 행을 삭제하기 전에 첫 번째 삽입이 성공했는지 확인하는 가장 효율적인 방법은 무엇입니까?
내 생각은 이것이지만 더 좋은 방법이 있다고 생각합니다.
@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)
RAISERROR 기능과 결합하는 것이 더 좋거나 가능합니까? 감사합니다!