【问题标题】:Adding a SQL column while also filling it in with a value from each row添加一个 SQL 列,同时用每一行的值填充它
【发布时间】:2022-11-23 05:34:08
【问题描述】:

我有一个表,其中包含DateTime 类型的列LastUpdated,我想向该表添加一列LastUpdated2。我想用表中每个现有行的任何 LastUpdated 填充它。

例如:

LastUpdated
12:01 PM
5:00 PM

变成:

LastUpdated LastUpdated2
12:01 PM 12:01 PM
5:00 PM 5:00 PM

如您所见,非常简单,我只希望它们匹配。

我看到很多关于 ALTER 语句的示例,该语句具有默认值,但在更新时没有找到每行具有特定值的示例。

最好我希望我的代码是这样的,希望这个伪代码有意义:

ALTER TABLE dbo.Appointments
    ADD LastUpdated2 DATETIME
        DEFAULT (SELECT LastUpdated FROM CurrentRow)

我还考虑过也许只是做一个ALTER 声明,然后是一个UPDATE 声明。也许这是唯一的方法怎么办?

【问题讨论】:

  • 为什么你想存储相同的日期时间吗两次在每一行?!?!
  • 这实际上只是一个示例问题,但我明白你为什么会这么说。在实际应用中,第二个会发生很大变化,而第一个需要保持不变。

标签: sql sql-server


【解决方案1】:

我认为没有办法单独在 ALTER 语句中完成这一切。需要两个单独的语句:

ALTER TABLE dbo.Appointments
ADD LastUpdated2 DATETIME

UPDATE dbo.Appointments
SET LastUpdated2 = LastUpdated

这完成了我想做的事情。我很好奇是否有办法只在 ALTER 语句中执行此操作,但也许没有。我没有在网上看到任何例子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    相关资源
    最近更新 更多