【问题标题】:How can I add a column in a table with a default value如何在表中添加具有默认值的列
【发布时间】:2022-01-13 07:49:51
【问题描述】:

我正在使用 Azure Data Studio 并尝试将一列添加到默认计算的表中。到目前为止,我已经尝试了以下代码:

alter table ETUDIANT add age int;
alter table ETUDIANT add constraint default_etudiant_age default(datediff(year, sysdatetime(), DateN));

alter table ETUDIANT add age int default(datediff(year, sysdatetime(), DateN));

没用.. 有人知道可能出了什么问题吗?

【问题讨论】:

标签: sql-server azure constraints default


【解决方案1】:

我认为您实际上想要一个计算列?

数据库总是为您计算它,而您从不自己提供值?

alter table ETUDIANT add age as (datediff(year, sysdatetime(), DateN)) persisted;

https://docs.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table?view=sql-server-ver15

编辑:

或者,也许是一个触发器?

CREATE TRIGGER trg_ETUDIANT_AfterInsert
  ON ETUDIANT 
AFTER INSERT
AS
  UPDATE ETUDIANT AS t
  SET t.age = t.datediff(year, sysdatetime(), DateN)
  FROM Inserted AS i
  WHERE t.PK = i.PK;
        -- Where PK is whatever unique key(s) exist on your table

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多