web-dev-qa-db-ja.com

SQL Serverのタイムアウト保存テーブル

SSMSを使用して、SQL Server 2005で多くのデータを含むテーブルに列を追加しようとしています。

そこで、テーブルを参照し、[変更]を選択して、新しい列を追加します。次に、[保存]をクリックすると、次の警告が表示されます。

大量のデータを含むテーブルへの定義変更の保存には、かなりの時間がかかる場合があります。変更の保存中は、テーブルデータにアクセスできません

私はそれで大丈夫です。DBはオフラインで、世界中にいつでもいるので、[はい]を押します。

ただし、操作は約30秒後に次のメッセージでタイムアウトします。

テーブルを変更できません。タイムアウトになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。

次に、OKを押すと:

ユーザーが保存ダイアログをキャンセルしました(MS Visual Database Tools)

わかりません。 SSMS接続ダイアログと[ツール]-> [オプション]-> [クエリ実行]-> [SQL Server]の両方で、実行タイムアウトを0(無限)に設定しました。無視されるだけの場合、実行タイムアウトを設定する意味は何ですか?

ここで使用されているタイムアウト値と、それを設定する方法を知っている人はいますか?

16
Tor Haugen

タイムアウト設定のように聞こえます。そのため、SSMSは時間がかかりすぎると判断し、接続をキャンセルします。 SQLサーバーのロールバック。しかし、助けがあります。あなたはこれに遭遇する最初の人ではありません。

こちら を参照してください。

リンクをクリックしたくない人のために。ここに価格獲得の答えが​​あります:

同じエラーが発生した後、私は現在の設定に偶然出会いました。

Management Studioで、[ツール]メニューから[オプション]を選択し、[デザイナー]をクリックします。 「テーブルデザイナの更新の接続文字列のタイムアウト値を上書きする」というオプションがあります。「トランザクションのタイムアウト後:」ボックスに、魔法の30秒が表示されます。

27
Peter Schuetze

//以下をせよ:

SQL Server管理スタジオを開きます->ツールメニュー->オプション->デザイナタブ->テーブルとデータベースデザイナ->タイムアウトを30秒から65535秒に増やします。--> OK

//これで、テーブルの変更を保存できます。 //それが役に立てば幸い、そして私のブログをチェックしてください@://www.ogolla.blogspot.com

6
ogola

SSMSは一般的なデータ変更には使用しないでください。 T-SQLに慣れ、以下のように列を追加します。

ALTER TABLE TableName ADD NewColumn INT

SSMSは、実際にはすべての列を含む新しいテーブルを作成し、新しいテーブルにデータをインポートして、古いテーブルを削除しています。世界中にいつもいるとしても、効率的な方法があれば、正しい方法を使用する必要があります。この混乱を避けるために、SQL Server 2008ではGUIメソッドIIRCを許可していません。

0
Sankar Reddy