295

以前に SQL Server Management Studio に保存された (テーブルにデータが存在しない) テーブルの変更を保存しようとすると、次のエラー メッセージが表示されます。

変更の保存は許可されていません。行った変更により、次のテーブルを削除して再作成する必要があります。再作成できないテーブルに変更を加えたか、[テーブルの再作成が必要な変更を保存しない] オプションを有効にしました。

テーブルを簡単に編集できない原因は何ですか? または、SQL Server Management Studio が編集のためにテーブルを再作成する必要があるのは通常の方法ですか? それは何ですか - この「変更の保存を防ぐオプション」 ?

4

6 に答える 6

636

[ツール] -> [オプション] -> [デザイナー] -> [テーブルの再作成が必要な変更を保存しない] のチェックを外します。出来上がり。

これは、何かを変更するためにテーブルを削除して再作成する必要がある場合があるためです。すべてのデータを一時テーブルにコピーしてから、新しいテーブルに再挿入する必要があるため、これには時間がかかる場合があります。SQL Server はデフォルトであなたを信頼していないので、「OK、私が何をしているのか分かっているので、私の仕事をさせてください」と言う必要があります。

于 2009-12-28T11:48:47.173 に答える
125

ツール | オプション | デザイナー | テーブルとデータベースの設計者

「テーブルの再作成が必要な変更を保存しない」オプションのチェックを外します。

于 2012-09-25T12:07:33.850 に答える
71

この問題を回避するには、SQL ステートメントを使用してテーブルのメタデータ構造を変更します。

この問題は、「テーブルの再作成が必要な変更を保存できないようにする」オプションが有効になっている場合に発生します。

ソース: SQL Server 2008 でテーブルを保存しようとすると、エラー メッセージ:「変更の保存は許可されていません」

于 2009-12-28T11:47:43.210 に答える
16

SSMSに行き、これを試してください

メニュー >> ツール >> オプション >> デザイナー >> 「テーブルの再作成が必要な変更を保存しない」のチェックを外します。

これについての非常に良い説明は次のとおりです 。 -you-have-made-require-the-following-tables-to-be-dropped-and-re-created-you-have-either-made-changes-to-a-tab/

于 2014-10-29T07:31:26.120 に答える
16

ボックスのチェックを外す (貧弱な解決策) のではなく、そのような方法でデータを編集するのをやめるべきです。データを変更する必要がある場合は、スクリプトを使用して変更を行います。これにより、データを本番環境に簡単に移植し、ソース管理下に置くことができます。これにより、本番環境が開発にプッシュされた後にテストの変更を簡単に更新して、開発者がより新しいデータに対して作業できるようになります。

于 2009-12-28T21:34:52.900 に答える
14

SQL Server Management Studio のテーブル エディターで非常に簡単かつ視覚的に行うことができる多くの変更では、実際には SSMS がバックグラウンドでテーブルを削除し、最初から再作成する必要があります。列の並べ替えなどの単純なことでさえ、標準の SQL DDL ステートメントでは表現できません。SSMS でできることは、テーブルを削除して再作成することだけです。

この操作は、a) 大きなテーブルでは非常に時間がかかるか、b) さまざまな理由 (FK 制約など) で失敗することさえあります。したがって、SQL Server 2008 の SSMS は、他の回答で既に特定されている新しいオプションを導入しました。

このような変更を防ぐことは、最初は直感に反するように思えるかもしれません。開発サーバーでは確かに迷惑です。しかし、本番サーバーでは、このオプションと、そのような変更を防止するデフォルト値は、命の恩人になる可能性があります!

于 2009-12-28T12:38:28.200 に答える