如何在表中添加具有默认值的列
Posted
技术标签:
【中文标题】如何在表中添加具有默认值的列【英文标题】: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));
没用.. 有人知道可能出了什么问题吗?
【问题讨论】:
didn't work
是什么意思?错误消息、意外行为等? (不过,您可能想要的不是默认值,而是计算列...docs.microsoft.com/en-us/sql/relational-databases/tables/…)
【参考方案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
【讨论】:
以上是关于如何在表中添加具有默认值的列的主要内容,如果未能解决你的问题,请参考以下文章