1

次のクエリを使用して、スクリプトがデータベースから誤って数行を削除しました。

DELETE FROM that_table WHERE id IN (100, 101, 102)

その間に、さらに多くの行が追加されました。3つの行を同じテーブル(またはおそらく別のデータベース/テーブル)に復元する方法はありますか?そのクエリの後に追加/更新されたすべてのデータが失われることを意味するかのように、データベースを復元したくありません。不足している行を手で入力するのはオプションです。

4

3 に答える 3

1

ApexSQL Logを使用できます。これは、データベーストランザクションログから情報を読み取り、DML操作とDDL操作の両方に元に戻すT-SQLスクリプトを提供するSQLServer監査および回復ツールです。

免責事項:私はApexSQLで製品サポートエンジニアとして働いています

于 2014-06-20T20:06:53.887 に答える
0

SQL Server 2000を使用している場合、無料のRedgate SQL Log Rescue Toolがこのバージョンに対して機能するため、運が良かったかもしれません。

于 2011-10-03T10:54:13.157 に答える
0

幸い、バックアップがあったので、ここで説明する手順を使用して、同じサーバー上で新しいデータベースの下にバックアップを復元しました。

同じサーバー上の新しいデータベースへの完全バックアップの復元

データベースのバックアップが新しいデータベースに復元された後、行を見つけて挿入しました。

INSERT INTO that_database..that_table
SELECT * FROM copy_database..that_table WHERE id IN (100, 101, 102)

上記のクエリはそのままでは実行できませんでした。IDの挿入を有効にし、いくつかの制約を一時的に無効にする必要がありました。

于 2011-10-03T13:15:34.263 に答える