1

何らかの理由で、SQL Server 2008 で既存のテーブルに列を追加できません。

テーブルは空です。

SQL 2008 でテーブルを変更できないようにする設定はありますか?

4

2 に答える 2

4

SSMSを使用してデータベース内のテーブルを設計してから、テーブル構造に変更を加えようとすると(最後にない列を追加するなど)、テーブルを再作成する必要があります。デフォルト設定では、再作成が必要な変更を保存することはできません。

あなたはできる:

  1. ツールに移動| オプション| デザイナー| テーブルとデザイナを選択し、テーブルの再作成が必要な変更の保存を防止するオプションのチェックを外します。
  2. 変更をスクリプト化して、自分で実行します。

警告

これがデフォルトとして設定されている理由は、テーブルの再作成が本番データベースで非常に有害である可能性があり、自動スクリプトが問題を引き起こす可能性があるというエッジケースがあることに注意してください。数十億行の複数のファイルグループに非常に複雑なパーティションテーブルがある場合はどうなりますか?テーブルの2つのコピーと非常に巨大なトランザクションログに必要な膨大なスペースが実際にあると仮定すると、これはデータベース全体を何時間も破壊し、とにかく最終結果を台無しにする可能性があります。または、新しいテーブルを挿入できなかった場合(null以外の列がデフォルトなしで追加された場合など)、スクリプトが適切に回復せずに挿入ステップに失敗し、空になる可能性があります。テーブル。

アイデア:最初にバックアップしてください!

リスクを理解していない場合は何もしないでください。

失われたデータの例

これは、このオプションを使用してデータを失った人の完璧な例です。警告しなかったとは言わないでください。

于 2012-02-12T00:29:38.137 に答える
4

はい、設定を変更してこれを停止できます。詳細はこちら

于 2008-11-12T19:51:25.153 に答える