我最近从事的一个项目的要求之一是维护数据库表数据的历史记录,作为审计跟踪的一部分。我首先想到的技术解决方案是使用触发器,但经过一些研究后,我了解了 SQL Server 时态表(核心 SQL Server 2016 的一部分)。我围绕这个做了很多研究,发现临时表可以很好地利用。
有关时态表的更多信息:在 SQL Server 2016 中管理时态表历史记录
但是,我希望仅在更改少数列时创建临时表中的数据。
CREATE TABLE dbo.Persons
(
ID BIGINT IDENTITY(1,1) NOT NULL,
FirstName NVARCHAR(50) NOT NULL,
LastName NVARCHAR(50),
PhoneNumber NVARCHAR(20)
)
现在,如果我在此之上创建临时表(SYSTEM_VERSIONING = On),我希望仅在更改电话号码而不是名字和姓氏时才将数据插入临时表中。