【问题标题】:Can´t add field without foreign key无法添加没有外键的字段
【发布时间】:2017-01-19 22:57:14
【问题描述】:

我有两个数据库,一个在本地,另一个在生产中。

在其中一个中,我有列 IdNivelDominio 没有 FK 但如果我打开 Constraints 文件夹,我有类似的东西:

DF_EvaluacionDetalleCompetenciasFuncionales_IdNivelDominio

所以我想将此字段回复到我的另一个数据库中:

ALTER TABLE Reclutamiento.EvaluacionDetalleCompetenciasFuncionales
ADD IdNivelDominio INT NOT NULL;

但我得到错误:

ALTER TABLE 只允许添加可以包含空值的列,或者 指定了 DEFAULT 定义,或者要添加的列是 身份或时间戳列,或者如果之前都没有 满足条件表必须为空才能允许添加 本栏目。列“IdNivelDominio”不能添加到非空 表 'EvaluacionDetalleCompetenciasFuncionales' 因为它没有 满足这些条件。

问题是该字段未与外键链接(进入原始表),因此我无法添加约束。

谁能解释一下它是怎么发生的?或者有什么方法可以在没有外键的情况下进行约束?问候

【问题讨论】:

  • 如果您的表中有数据,请在您的alter 语句中添加default 关键字.....

标签: sql sql-server


【解决方案1】:
ALTER TABLE Reclutamiento.EvaluacionDetalleCompetenciasFuncionales
ADD IdNivelDominio INT NOT NULL DEFAULT 0;

您正在尝试将应为 NOT NULL 的新列添加到包含数据的表中。您需要指定该新列中的值,因为它是 NOT NULL

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
  • 2013-02-26
  • 2017-05-10
  • 1970-01-01
相关资源
最近更新 更多