2

我正在尝试将列更改为not null3.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. 从这里您可以选择覆盖超时或增加它:

    • 增加您的“交易超时时间:”(见图)

      或者

    • 取消选中“覆盖表设计器更新的连接字符串超时值:”

在此处输入图像描述

如您所见,默认超时为 30 秒。这些选项记录在此处的 MS 支持页面上

于 2015-06-16T21:43:11.923 回答