SQL Server Management Studio のテーブル デザイナーで、既存のテーブルに新しい列を追加しました。null ではなく、INT を入力します。 デフォルト値を設定しませんでした。
変更スクリプトを生成して実行したところ、新しい列では null が許可されず、デフォルト値が設定されていないという警告が表示されてエラーが発生しました。「0行が影響を受けました」と表示されました。
データはまだそこにあり、何らかの理由で、SSMS の左側にあるデータベース ツリーの "列" フォルダーに新しい列が表示されていましたが、「0 行が影響を受けました」と表示され、データベースの変更に失敗しました。
リストに新しい列が表示されたので、すべての行を更新して値を追加しようと考えました。
UPDATE MyTable SET NewColumn = 0
ブーム..テーブルがきれいに拭き取られました。すべての行が削除されました。
私が知らないうちにバックアップされていなかった運用データベース上にあったため、これは大きな問題です。しかし..手動入力で回復できるので、世界の終わりではありません。
ここで何が起こったのか誰でも知っています..そして、内部で何が起こっていたのか、更新ステートメントがテーブルのすべての行を消去した可能性がありますか?