1

開発データベースの一部のテーブルにさらに列が追加されている場合に問題が発生しました。現在、運用データベースに列を追加する必要があります。

テーブルツリーに列を追加して、列を手動で追加しようとしましたが、保存しようとすると、次のように表示されますwarning

ここに画像の説明を入力

完全な警告メッセージは次のとおりです。

Saving Definition Changes to tables with large amounts of data could take a 
 considerable amount of time. While changes are being saved, 
 table data will not be accessible.

これは安全ですか?またはこれを行う別の方法はありますか?

更新:クリックしようとしましYesたが、数分後に別の警告が表示されTime Out、プロセスがキャンセルされました。はい、本番テーブルのデータは完全に巨大です

4

3 に答える 3

5

これを修正するには、 [ツール] メニューに移動して [オプション]を選択し、[デザイナー] で[テーブルとデータベースのデザイナー] を選択します。最初のオプションでは、タイムアウトを無効にするか、デフォルトの 30 秒より長くすることができます。

参照: http://surf11.com/entry/197/Saving-table-times-out-in-sql-server-200

于 2013-07-12T08:12:36.330 に答える
1

基本的にこれは、SQL サーバーが (ディスク上の) テーブル内のすべてのレコードを調べて、それらを変更することを意味します。これは大量の IO を必要とし、テーブルを読み取り/書き込みにロックする操作です。

他に考慮すべきことは、 http://social.msdn.microsoft.com/Forums/sqlserver/en-US/7d46b158-a089-48c9-8153-53c5ed116d37/sql-2005-updating-table-definitionに記載されている DB タイムアウトです。 ・大量データタイムアウトあり

これは (ロックの問題を除いて) 比較的安全であり、どの方法を使用する場合にも当てはまります (Nice UI の警告がない場合もあります)。

于 2013-07-12T07:52:25.417 に答える
1

タイムアウト実行時間の設定には 2 つのオプションがあります

1. [ツール] > [オプション] > [デザイナー] > [トランザクション タイムアウト]

30秒以上の値を設定してください。(最大 65536) これで問題が解決します

しかし、もう1つのオプションがあります

2. ツール > オプション > クエリの実行 > 実行タイムアウト

通常、デフォルト値はすでに 0 (無制限) であるため、これは問題になりませんが、これを確認して、別の値が表示される場合は 0 に修正してください。

完全に安全で、データが破損する可能性はありません。

于 2018-09-10T15:08:53.880 に答える