【问题标题】:Add column to table with existing data in SQL Server使用 SQL Server 中的现有数据向表中添加列
【发布时间】:2021-04-01 12:16:09
【问题描述】:

我有一个包含数据的表 Rates,我需要向表中添加新列但是我收到错误:

ALTER TABLE 只允许添加可以包含空值或指定了 DEFAULT 定义的列,或者要添加的列是标识或时间戳列,或者如果前面的条件都不满足,则表必须是为空以允许添加此列。列“CreatedOn”不能添加到非空表“RateIncreases”,因为它不满足这些条件

我该怎么做,我已禁用阻止保存需要重新创建表的更改

【问题讨论】:

  • 在您的问题中提供一些示例数据以便更好地理解。
  • 你可以分享你用于添加新列的查询吗?
  • 更改表 Rates ADD DeletedOn DateTime not null

标签: sql sql-server


【解决方案1】:

您不了解错误的哪一部分?将列添加到现有表时,就会有行。该列被分配给这些行中的每一行。 SQL Server 必须给这些行一个值。它是如何做到的?

  • 它可以为列分配default值。
  • 可以分配NULL

在您的情况下,您已将列定义为NOT NULL,但未提供默认值。因此,数据库不知道该做什么,所以它返回一个错误。

最简单的解决方案是删除定义中的NOT NULL 约束。紧随其后的是分配一个默认值。

【讨论】:

  • 干得好,我的脑子被复杂的东西束缚住了,以至于我忘记了这个简单的技巧
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 2018-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多