在SQL Server中,是否有任何方法可以自动更新修改日期和时间?

6 浏览
0 Comments

在SQL Server中,是否有任何方法可以自动更新修改日期和时间?

在SQL Server中,有没有办法自动更新修改日期和时间?

我不想使用触发器。而且我想在调用SQL查询时避免通过应用程序提供该值。

SQL或Dapper等是否支持这一功能?

0
0 Comments

在SQL Server中是否有办法自动更新修改日期和时间?

在SQL Server中,有一种解决方法是使用Temporal Table(临时表)。以下是我是如何解决这个问题的。

首先,我们需要创建一个表,表结构如下:

CREATE TABLE extable4 (
    PriKey int PRIMARY KEY,
    ColValue varchar(200),
    [ModifiedDateTime] datetime2 (2) GENERATED ALWAYS AS ROW START,
    [ModifiedExpiryDateTime] datetime2 (2) GENERATED ALWAYS AS ROW END HIDDEN,
    PERIOD FOR SYSTEM_TIME (ModifiedDateTime, [ModifiedExpiryDateTime])
);

接下来,我们可以插入一条记录,而不提供ModifiedDateTime的输入:

INSERT INTO extable4 (PriKey, ColValue) VALUES (1, 'Ver 1');

在执行此插入操作后,ModifiedDateTime将被自动填充为系统时间。

然后,我们可以通过执行以下更新语句来更新ModifiedDateTime:

UPDATE extable4 SET ColValue = 'Ver 1.1' WHERE PriKey = 1;

此时,ModifiedDateTime将被更新为当前时间。

使用Temporal Table可以实现自动更新修改日期和时间的功能。这种方法非常简洁有效。

0
0 Comments

在SQL Server中,如果您想要跟踪数据库中的更改,可以使用一个称为“System-Versioned Temporal Table”的功能,如下所示:在这里有详细解释。

使用临时表,您将能够像往常一样查询行的最近状态,同时还能够查询该行的完整历史记录。

如果您有兴趣保留数据更改的历史记录,这非常方便。

0