sql-server - SQL Server 中值的自动更新

标签 sql-server auto-update

例如,我有一个表tb,其中包含以下列:

order_id | date_ordered | due_date | status

是否有开箱即用的解决方案,当当前时间(来自服务器)达到 due_date 列的值时,我可以自动更新 status 列?我该怎么做?

提前致谢。

更新:

像这样:

test1 | 2016-03-30 09:19:06.610 | 2016-03-30 11:19:06.610 | NEW
test2 | 2016-03-30 09:22:43.513 | 2016-03-30 11:22:43.513 | NEW
test3 | 2016-03-30 09:06:03.627 | 2016-03-30 11:06:03.627 | NEW

当服务器时间到达 2016-03-30 11:19:06.610 时,test1 的状态会改变值,比如 overdue

最佳答案

这取决于您所说的“开箱即用的解决方案”是什么意思。您可以创建一个 sql server 代理作业,它每分钟检查一次 due_date 值是否小于或等于当前日期和时间,并更改状态列。

计算列可能是另一种更简单的解决方案。

像这样的表格可能就足够了:

CREATE TABLE tb_test (
    order_id INT PRIMARY KEY,
    date_ordered  DATETIME,
    due_date DATETIME,
    [status] as 
    CASE WHEN due_date <= GETDATE() THEN 'overdue'
    ELSE 'new' END
 );

关于sql-server - SQL Server 中值的自动更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36303923/

相关文章:

mysql - 一个表中的 SQL 行不在另一个表的多个字段中

android - 停止 Android 操作系统自动更新

mysql - 当其他链接表中的行更新时如何自动更新时间戳

auto-update - 自动更新 ala Google Chrome 工作流程

iphone - 是否可以让您上传的 iPhone 应用程序自动更新?

c# - 使用 .NET/C# 应用程序自动更新的免费解决方案?

ASP.NET session 性能

c# - asp.net c# 和 mongodb 模型

sql - 如何将另外两列 INNER JOIN 加入到表中?

sql - 在 IN 子句中使用 CASE 语句