SQL 服务器中值的自动更新
Automatic update of values in SQL Server
例如,我有一个 table 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
这取决于你所说的 "out of the box solution" 是什么意思。您可以创建一个 sql 服务器代理作业,它每分钟检查一次值 due_date 是否小于或等于当前日期和时间并更改状态列。
计算列可能是另一种更简单的解决方案。
像这样的 table 可能就足够了:
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
);
例如,我有一个 table 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
这取决于你所说的 "out of the box solution" 是什么意思。您可以创建一个 sql 服务器代理作业,它每分钟检查一次值 due_date 是否小于或等于当前日期和时间并更改状态列。
计算列可能是另一种更简单的解决方案。
像这样的 table 可能就足够了:
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
);