sql >> データベース >  >> RDS >> Sqlserver

新しい列を (誤って) 作成した後、SQL Server がテーブルをワイプしました..一体何が起こったのでしょうか?

    UPDATE 後で削除を実行するトリガーがない限り、ステートメントは行を削除できず、テーブルにトリガーがないとあなたは言います。

    したがって、それは私がコメントで説明したシナリオである必要がありました:行が新しいテーブルに適切にロードされず、古いテーブルが削除されました.

    見えることさえあることに注意してください。 ある時点で行がロードされた場合、トランザクションがコミットされず、(たとえば)後でセッションが終了したときに、トランザクションが自動的にロールバックされた場合に適しています。他の理由でトランザクションがロールバックされた可能性もあります。

    また、順序が間違っている可能性があります。新しい名前で新しいテーブルを作成し、行をロードし、古いテーブルを削除し、新しいテーブルの名前を変更する可能性があります。この場合、データがロードされたかどうかを確認するために間違ったテーブルにクエリを実行している可能性があります。テーブル デザイナーがスクリプトをどのように構成したか、今すぐ頭の中で思い出すことはできません。この猫の皮を剥ぐ方法は 1 つではありません。




    1. ID値を返すときのExecuteScalarとExecuteNonQuery

    2. 日付範囲を対応する週に分割

    3. UTF-8でエンコードされたダンプをMySQLにロードする

    4. MySqlクエリ、より大きいを選択