gpt4 book ai didi

sql - 在 "Status"时间后动态更新 "X"列

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:50 26 4
gpt4 key购买 nike

我是 SQL Server 的新手,但我正在开发一个应用程序,其中记录被添加到表中,并被赋予一个 DateTime 戳记。

我希望能够在添加该行 1 小时后动态更新该行的 Status 列。

如果不每隔几分钟运行一些服务器端脚本或存储过程,这是否可能?有没有一种有效的方法来实现这一点?

最佳答案

在 Sql Server 中,您可以执行 Time DependantAction Dependent 代码。

时间相关

时间相关代码的执行是通过 SQL Server 代理作业处理的。您可以在一天中的特定时间执行存储过程或临时 T-SQL 代码。它可以安排定期执行。

Action 依赖

Action Dependent 代码的执行是通过触发器(After/Instead of Triggers)处理的。为响应 DML 操作插入、更新或删除而执行的一段代码。

解决方案

在您的情况下,您正尝试在一段时间后执行代码以响应某个操作(插入)。我不认为有一种有效的方法可以做到这一点我宁愿做以下......

您可以在表中创建一个名为 Datetime 数据类型的列,并设置 GETDATE()默认值

现在您不需要状态列。您所需要的只是一个查询/ View ,它会在运行时检查该行是否是在一个多小时前添加的,并会根据需要返回它的状态。

有点像......

CREATE VIEW dbo.vw_Current_Status 
AS
SELECT *
, CASE WHEN DATEDIFF(MINUTE, Created, GETDATE()) >= 60
THEN 'OLD'
ELSE 'New' END AS [Status]
FROM TABLE_NAME

关于sql - 在 "Status"时间后动态更新 "X"列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25166271/

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