2

not null列を3.5 GB テーブル (SQL Server Express)に変更しようとしています。

テーブル内のすべての行に値が含まれます。

からチェック ボックスを削除しallow null、[保存] をクリックします。

私は得る:

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

どうすればこれを克服できますか?

4

3 に答える 3

4

直接動作しない場合があります。このようにする必要があります

まず、テーブル内のすべての NULL 値を非 null にします

UPDATE tblname SET colname=0 WHERE colname IS NULL

次に、テーブルを更新します

ALTER TABLE tblname ALTER COLUMN colname INTEGER NOT NULL

これで問題が解決することを願っています。

于 2013-05-12T11:30:35.267 に答える
2

これを試してください:

 ALTER TABLE tblname ADD CONSTRAINT [DF_tblname_colnamename] DEFAULT (0) FOR  colname
 ALTER TABLE tblname ALTER COLUMN colname INTEGER  NOT NULL
于 2013-05-12T12:00:33.277 に答える
2

タイムアウトを増やしたり上書きしたりすることもできます。

  1. SQL Server Management Studio で、[ツール] -> [オプション] をクリックします。
  2. [デザイナー] を展開し、左側の [テーブルおよびデータベース デザイナー] を選択します (写真を参照)。
  3. ここから、タイムアウトをオーバーライドするか、それを増やすオプションがあります。

    • 「Transaction time-out after:」を増やします (写真を参照)。

      また

    • 「テーブル デザイナーの更新の接続文字列のタイムアウト値をオーバーライドする:」のチェックを外します。

ここに画像の説明を入力

ご覧のとおり、デフォルトのタイムアウトは 30 秒です。これらのオプションは、こちらの MS サポート ページに記載されています。

于 2015-06-16T21:43:11.923 に答える