sql - 如何向大型 sql server 表添加列

标签 sql sql-server tsql

我在生产中有一个包含数百万行的 SQL Server 表,结果我需要向其中添加一列。或者,更准确地说,我需要向表表示的实体添加一个字段。

从语法上讲,这不是问题,如果表没有那么多行并且没有在生产中,那么这会很容易。

我真正追求的是行动方针。有很多网站都有非常大的表,并且它们必须不时添加字段。他们如何在不造成大量停机的情况下做到这一点?

我应该添加一件事,我不希望该列允许空值,这意味着我需要有一个默认值。

所以我要么需要弄清楚如何及时添加具有默认值的列,要么需要找到一种稍后更新该列然后将该列设置为不允许空值的方法。

最佳答案

ALTER TABLE table1 ADD
  newcolumn int NULL
GO

不应该花那么长时间...需要很长时间的是在其他列的中间插入列...b/c然后引擎需要创建一个新表并将数据复制到新表。

关于sql - 如何向大型 sql server 表添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1645215/

相关文章:

sql-server - SQL Server 2016 上的服务器名称

sql - 'when else' 环境中的 0 个分区

mysql - SQL语句仅获取表的最新连接条目

mysql - 选择与其他记录无关的记录

php - SQL Server 的 ODBC 驱动程序 18]SSL 提供程序 : [error:1416F086]

SQL 服务器 : Replace invalid XML characters from a VARCHAR(MAX) field

c# - 是否可以在 Entity Framework 和 LINQ 中调用 T-SQL 函数?

sql - 一次选择返回两个 Count(*) 结果

SQL Server 和 postgresql 中的 SQL 标准

c# - SQLConnection 使用随机命名管道而不是 tcp