• ベストアンサー

Oracleで言うROLLBACKする方法について

最近SQL-Serverを使い出した初心者です。 こんな質問する事事態、お恥ずかしいのですが 教えてください。 該当テーブルにデータを一括インポートした際、 不必要なデータも紛れ込んでいました。 1件毎に削除すれば良いのですが莫大なデータなため 大変で元に戻したいのですが、バックアップしたものから 既に変ってしまっています。 そこで、UNDOまたはOracleで言うROLLBACKする方法等 無いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> 該当テーブルにデータを一括インポート > バックアップしたものから既に変ってしまっています。 この状態では、ROLLBACKどころではありませんね。 以下、BACKUPも含め、自己責任で。 1)該当テーブルのダミー[1]を作成し、該当テーブルをバックアップする。 2)該当テーブルのダミー[2]を作成し、データを一括インポートする 3)「ダミー[1]とダミー[2]の一致するレコード」を削除する。 単純に複数件削除のためなら、この段階でダミー[2]のレコードが全件無くなれば、ダミー[1]の一致したレコードも無いのでめでたしめでたし。 ここでダミー[2]が残るようなら残れば何らかの更新(Update,Delete)が行われたので、更なる追跡が必要。 ダミー[1]と現状データの差を調査し、どうするか、の判断が必要です。

Saru_ru
質問者

お礼

残念ですが、やはりそうでしたか。 ご丁寧な回答有難うございました。 また質問させて頂いた際には、宜しくお願いします。

関連するQ&A