SQL Server Management Studioを使用して大きなテーブルを変更しようとするとエラーが発生する

この記事は、SQL Server Management Studioのテーブル デザイナーを使用して大きなテーブルを変更しようとしたときに発生する問題を解決するのに役立ちます。

元の製品バージョン: SQL Server
元の KB 番号: 915849

現象

Microsoft SQL Server Management Studioのテーブル デザイナーを使用して大きなテーブルを変更しようとすると、次のようなエラー メッセージが表示されることがあります。

テーブルを変更できません。
タイムアウト期間が経過しました。 The timeout period elapsed prior to completion of the operation or the server is not responding.

原因

この動作は、テーブル デザイナーとSQL Server Management Studioのデータベース デザイナーのトランザクション タイムアウト設定が原因で発生します。 この設定は、[ トランザクションのタイムアウト後 ] ボックスで指定できます。 既定では、この設定は 30 秒です。

注:

この設定は、SQL Server Management Studioの [実行のタイムアウト] ボックスの設定とは異なります。 既定では、SQL Server Management Studioのクエリ エディターの [実行のタイムアウト] ボックスの設定は 0 です。 既定では、SQL Server 2000 SQL Query Analyzer のクエリ エディターの [クエリのタイムアウト (秒)] ボックスの設定も 0 です。 したがって、クエリ エディタークエリが終了するまで無限に待機し、タイムアウトすることはありません。

解決方法

この動作を解決するには、次のいずれかの方法を使用します。

  • をクリックすると、テーブル デザイナーとSQL Server Management Studioのデータベース デザイナーの [テーブル デザイナーの更新チェックオーバーライド 接続文字列タイムアウト値] ボックスがオフになります。

  • テーブル デザイナーとデータベース デザイナーの [トランザクションのタイムアウト後] ボックスに高い設定を指定SQL Server Management Studio。

  • SQL Server Management Studioのクエリ エディターで Transact-SQL ステートメントを使用して、大きなテーブルを変更します。

これらの設定の詳細については、「 オプション (デザイナー - テーブルおよびデータベース デザイナー ページ)」を参照してください。

状態

この動作は仕様です。

詳細情報

大きなテーブルの変更には時間がかかる場合があります。 これは、テーブル スキーマを変更するときに、SQL Serverで次のアクションを実行する必要があるためです。

  1. 同じテーブル スキーマを持つ一時テーブルを作成します。
  2. 実際のテーブルから一時テーブルにすべてのデータをコピーします。
  3. 実際のテーブルを削除します。
  4. 一時テーブルの名前を実際のテーブルの名前に変更します。