Одним из требований недавнего проекта, над которым я работал, было ведение истории данных таблицы базы данных как часть контрольного журнала.Моей первой мыслью о техническом решении было использование триггеров, но после некоторых исследований я узнал о временных таблицах 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), мне нужны данныевставляется во временную таблицу только при изменении номера телефона, а не имени и фамилии.