アーカイブプロセスの一環として、あるデータベースから別のデータベースにレコードを移動しています。行を宛先テーブルにコピーしてから、同じ行をソーステーブルから削除します。
私の質問は、行を削除する前に最初の挿入が成功したかどうかを確認する最も効率的な方法は何ですか?
私の考えはこれですが、もっと良い方法があると思います:
@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関数と組み合わせるのが良いですか?ありがとうございました!