【问题标题】:INSERTED NULL into Date and now cannot update将 NULL 插入到日期中,现在无法更新
【发布时间】:2017-05-07 17:05:52
【问题描述】:

SQL Server 2014 问题。我创建了一个表,其中包含两个 DATE 数据类型的 DATE 列。一个被填充,另一个是未来事件。我创建了一个 date1

【问题讨论】:

  • 您能分享一下您尝试使用的语句吗?

标签: sql sql-server date


【解决方案1】:

改变约束!它永远不是真的——要么是假的,要么是NULL。因此,删除您拥有的约束并执行以下操作:

alter table t add constraint chk_t_date1_date2 check ( (date1 < date2) or date2 is null);

要删除约束,您可以:

alter table t drop constraint <constraint name>;

你需要知道约束的名字,可以从information_schema.table_constraints得到。

【讨论】:

  • 我成功删除了约束。我用 OR IS NULL 添加了新的。但是,我仍然无法更新该列。同样的不兼容。我没有任何限制地尝试了它,并且无法将字段更新为字符串或日期。这是我的语法 UPDATE PET SET DeceasedDate = 2017-04-02 WHERE PetID=3
  • 我认为问题在于我运行的触发器不是日期字段本身。谢谢大家!
  • @KathleenSheehan 。 . .问题将是触发器和约束。当然,在插入使其通过约束之前,触发器不会被触发。
【解决方案2】:

您应该在 ' 前后使用单引号 '2019-04-18'。

【讨论】:

  • 和建议一样好,OP 提到 date2 中有 NULL 值。 SQL Server 不会将该值视为空值,而是将其视为未知值。它永远不会正确评估。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-15
  • 2018-09-26
  • 2013-12-14
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多