私は大きな間違いを犯しました、私はこのクエリを実行しました:
update Contact set ContaPassword = '7FD736A3070CB9766'
条項を忘れたWHERE
ので、このようにしてすべてのユーザーのパスワードを更新しました。:(
このクエリの前にデータを回復する方法はありますか?
私は大きな間違いを犯しました、私はこのクエリを実行しました:
update Contact set ContaPassword = '7FD736A3070CB9766'
条項を忘れたWHERE
ので、このようにしてすべてのユーザーのパスワードを更新しました。:(
このクエリの前にデータを回復する方法はありますか?
BEGIN TRANSACTION / ROLLBACKの外部で実行した場合、変更を元に戻すことはできません。これが、私があらゆる種類の本番データの更新を次のように開始する理由です。
BEGIN TRANSACTION
-- report the bad or undesired data condition before-hand
SELECT ...
-- change the data
INSERT/UPDATE/DELETE ...
-- ensure we changed a reasonable number of records; may not be accurate if table has triggers
SELECT @@ROWCOUNT
-- get the data condition afterwards and be sure it looks good.
SELECT ...
-- always start with this enabled first
ROLLBACK
-- don't do this until you are very sure the change looks good
-- COMMIT
Martin Smithは、このトピックに関するdba.stackexchange.comのBrentOzarによるこの優れた投稿を指摘しました。フルリカバリモードでは、ログファイルを調べて何が変更されたかを確認できます。
また、Odedが指摘したように、バックアップがある場合、元のデータに戻すことは難しくありません。バックアップをどこかに復元して、元のデータをコピーできます。