【问题标题】:What's the best way to auto update per record data periodically定期自动更新每条记录数据的最佳方法是什么
【发布时间】:2020-04-17 14:00:42
【问题描述】:

我需要将交易订单数据从 webAPI 插入到数据库 (SQL Server 2016) 中,这些数据将在 5 分钟内自动标记为过期。

我想到的是:

  1. 创建调度程序(Sql Job agent 或 Windows 调度程序),每秒触发更新查询,检查是否有记录 create_time 已超过 5 分钟,然后更新 expired_status = 1

但这是一个好的选择吗?因为在我的情况下,每秒可能有很多未处理的数据,并可能导致死锁(?)。

或者有什么更好的方法吗?

【问题讨论】:

    标签: c# .net sql-server asp.net-web-api sql-server-2016


    【解决方案1】:

    不需要计划任务。您可以创建一个计算列“IsExpired”来检查该行是否已过期。

    【讨论】:

    • 以前没有听说过计算列,我试过了,它可以工作。谢谢
    【解决方案2】:

    使用计算列尝试以下操作:

    ALTER TABLE transaction_table
    ADD Expired_Status AS CAST(case when datediff(minute, create_time, getdate()) > 5 then 1 else 0 end AS bit)
    GO
    

    请查看示例here

    【讨论】:

      猜你喜欢
      • 2015-04-04
      • 2011-06-04
      • 2020-11-06
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      相关资源
      最近更新 更多