gpt4 book ai didi

设置默认值getdate()时的sql,它是否在运行更新语句时设置值?

转载 作者:行者123 更新时间:2023-12-05 08:24:23 26 4
gpt4 key购买 nike

我知道当你向数据库中插入一个值时,它会将该列值设置为当前日期时间,当您运行更新语句时它适用于它吗?

例如

表架构:

Id, Name, CreatedDate(getdate())

当我插入表 id = 1 , name = 'john' 时,它将设置 createdDate = 当前日期

如果我运行更新语句

update table set name="john2" where id =1

它会更新 createdDate 吗?

最佳答案

不,DEFAULT CONSTRAINT 仅在 INSERT 上调用,并且仅在 (a) 与 NOT NULL 约束组合或 (b) 使用 DEFAULT VALUES 时调用。对于 UPDATE,SQL Server 根本不会查看您的 DEFAULT CONSTRAINT。目前您需要一个触发器(请参阅 How do I add a "last updated" column in a SQL Server 2008 R2 table?),但已经有多个请求内置此功能。

我在博客中介绍了一种使用时态表来诱使 SQL Server 执行此操作的方法:

但这充满了警告和限制,实际上只是在考虑其他多个类似的帖子:

关于设置默认值getdate()时的sql,它是否在运行更新语句时设置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10932646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com