sql - 使用 SQL Server 中的现有数据向表中添加列
问题描述
我有一个包含数据的表 Rates,我需要在表中添加新列但是我收到错误:
ALTER TABLE
只允许添加可以包含空值的列,或者指定了 DEFAULT 定义,或者要添加的列是标识或时间戳列,或者如果前面的条件都不满足,则表必须为空才能允许添加柱子。列“CreatedOn”无法添加到非空表“RateIncreases”,因为它不满足这些条件
我该怎么做,我已禁用阻止保存需要重新创建表的更改
解决方案
您不明白错误的哪一部分?将列添加到现有表时,会有行。该列被分配给这些行中的每一行。SQL Server 必须给这些行一个值。它是如何做到的?
default
它可以为列分配值。- 它可以分配
NULL
.
在您的情况下,您已将该列定义为NOT NULL
但未提供默认值。因此,数据库不知道该做什么,所以它返回一个错误。
最简单的解决方案是删除NOT NULL
定义中的约束。紧随其后的是分配默认值。
推荐阅读
- git - 从 git 中删除不在我的仓库中的文件
- javascript - 我需要从网站中选择元素“x”,但网站加载元素“x”太慢
- ruby-on-rails - 带有句点或特殊字符的 Ruby on Rails 路由
- scope - perl6 subs 真的是词法范围还是有额外的?
- arrays - Excel 中的匹配文本
- android - 应用程序如何在没有服务器的情况下代表用户访问 OAuth 服务(例如 Dropbox)?
- java - 价值回报方法JPQL的最佳实践
- excel - 如何按行对数据进行分组?
- java - 如何创建一个创建对列表的引用的对象?
- android - Android:谷歌登录完成后更改活动