gpt4 book ai didi

sql-server - SQL Server 中计算列的最佳实践

转载 作者:行者123 更新时间:2023-12-02 08:17:48 25 4
gpt4 key购买 nike

我正在使用用户表并希望添加“试用期结束日期”。基本上,每个新用户从加入之日起有整整 2 个月的试用期。我看到我可以在用户表的列中放置一个公式,但我想知道是否应该有一个脚本来更新它,或者这是否是使用计算列的可接受时间。我访问此表以进行各种操作,并且偶尔会根据性能里程碑成就更新用户的行。申请日期永远不会改变/更新。

我的问题是:在这种情况下使用计算列是一个好的做法吗?或者每次我更新该行时它都会重新计算(即使我不打算更新应用程序日期)?我不想在将来更新该行时产生更多开销。

我在试用期结束日期的列定义中使用的公式:

(dateadd(day,(-1),dateadd(month,(3),dateadd(day,(1)-datepart(day,[APP_DT]),[APP_DT]))))

最佳答案

由于该日期一旦设置后很可能永远不会更改,因此它可能不是计算列的良好候选者。

毕竟:一旦您在该表中插入一行,您就可以轻松计算出“试用期结束”日期(例如在触发器中),并且一旦设置,该日期就不会改变。

因此,虽然您绝对可以这样做,但我可能更喜欢使用仅计算的 AFTER INSERT 触发器(或用于 INSERT 操作的存储过程)一次,然后存储该日期。

另外,请注意:每次访问时都会计算仅包含公式的计算列 - 请注意这一点。也就是说,除非您指定 PERSISTED 关键字,否则在这种情况下,结果将与行中的其他数据一起存储,这更适合这里 - 同样,因为该值,一旦计算出来,就不一定会再次改变。

关于sql-server - SQL Server 中计算列的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836861/

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