首页 > 解决方案 > 使用 SQL Server 中的现有数据向表中添加列

问题描述

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

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

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

标签: sqlsql-server

解决方案


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

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

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

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


推荐阅读