web-dev-qa-db-ja.com

SQL Server Management Studioでテーブル編集後に変更を保存する

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

変更を保存することは許可されていません。行った変更により、以下の表をドロップして再作成する必要があります。再作成できないテーブルに変更を加えたか、またはテーブルの再作成を必要とする変更を保存しないオプションを有効にしました。

テーブルが簡単に編集できないのはなぜですか。または、SQL Server Management Studioで編集用のテーブルの再作成を要求するのは通常の方法ですか?それはなんですか - これ"option変更を保存しないようにする"

235
rem

[ツール] - > [オプション] - > [設計者] - > [テーブルの再作成が必要な変更を保存しない]のチェックを外します。ほら。

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

522
Pedro

ツール>オプション

enter image description here

上のオプションのチェックを外します

107
Prasanna

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

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

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

71
Daniel Vassallo

チェックボックスをオフにするのではなく(悪い解決策)、そのようにデータの編集をやめるべきです。データを変更する必要がある場合は、スクリプトを使用してデータを変更する必要があります。そうすれば、データを本番環境に簡単に移植でき、ソース管理の対象になります。これにより、開発者がより新鮮なデータに対して作業できるようにするために、プロダクションがdevにプッシュダウンされた後にテストの変更を簡単に更新することもできます。

15
HLGEM

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

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

これはこれについての非常によい説明です: http://blog.sqlauthority.com/2009/05/18/sql-server-fix-management-studio-error-saving-changes-in-not-permitted次の表を削除するために必要な変更と、タブへの変更を加えたものを作成し直す/

14
Rolwin C

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

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

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

14
marc_s

これは、このオプションを無効にするリスクです。変更追跡が有効になっていると(テーブル)、変更を失う可能性があります。

クリス

http://chrisbarba.wordpress.com/2009/04/15/sql-server-2008-cant-save-changes-to-tables/

6
Chris