如何解决添加新列并将GETDATE设置为SQL Server 2017中的值
这是我的查询:
alter table reseau add datemodification datetime default getdate()
执行后,行的值为NULL
,但我希望将它们设置为GETDATE()
的当前值。
我该怎么做?
解决方法
DEFAULT
是CONSTRAINT
,它在执行INSERT
时将其设置为省略时设置的值。如果要创建一个具有DEFAULT
值的列,并在创建该列时将其与该DEFAULT
值一起填充,然后在末尾添加WITH VALUES
声明的内容:
CREATE TABLE dbo.test (ID int);
INSERT INTO dbo.Test VALUES (1),(2),(3),(4),(5);
GO
ALTER TABLE dbo.Test ADD D datetime DEFAULT GETDATE() WITH VALUES;
GO
SELECT *
FROM dbo.Test;
GO
DROP TABLE dbo.Test;
,
如果要在添加列后更新现有值,请使用update
:
update reseau
set datemodification = getdate();
默认值对 new 行生效。
或者,您可以将列定义为not null
:
alter table reseau add datemodification not null datetime default getdate();
然后现有行将使用default
值。
Here是db 小提琴,说明了这两种方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。