SQL Server:将非常大的表中的列更改为NOTNULL
我正在尝试将3.5 gb表(SQL Server Express)上的列更改为SQL Server:将非常大的表中的列更改为NOTNULL,sql,sql-server,sql-server-2012,sql-server-express,Sql,Sql Server,Sql Server 2012,Sql Server Express,我正在尝试将3.5 gb表(SQL Server Express)上的列更改为非null 所有行都包含表中的值 我从允许null中删除复选框,然后单击保存 我得到: 无法修改表。 超时已过期。操作完成前已过超时时间,或者服务器没有响应 我如何克服这个问题?它可能无法直接工作。你需要这样做 首先,将表中的所有空值设为非空 UPDATE tblname SET colname=0 WHERE colname IS NULL 然后更新您的表 ALTER TABLE tblname ALTER COL
非null
所有行都包含表中的值
我从允许null
中删除复选框,然后单击保存
我得到:
无法修改表。超时已过期。操作完成前已过超时时间,或者服务器没有响应
我如何克服这个问题?它可能无法直接工作。你需要这样做 首先,将表中的所有空值设为非空
UPDATE tblname SET colname=0 WHERE colname IS NULL
然后更新您的表
ALTER TABLE tblname ALTER COLUMN colname INTEGER NOT NULL
希望这能解决您的问题。试试这个:
ALTER TABLE tblname ADD CONSTRAINT [DF_tblname_colnamename] DEFAULT (0) FOR colname
ALTER TABLE tblname ALTER COLUMN colname INTEGER NOT NULL
您还可以增加或覆盖超时
- 增加您的“交易超时时间:”(参见图) 或
- 取消选中“覆盖表设计器更新的连接字符串超时值:”