Мы используем таблицы аудита для каждой операционной таблицы, в которой хранится предыдущее значение ее операционного эквивалента плюс дата изменения, тип изменения (UPDATE или DELETE) и собственный автоинкрементальный первичный ключ.
Итак, для таблицы Users с столбцами UserID, Name, Email будет таблица xUsers с идентификатором столбцов, OpererationType, OperationDate, UserID, Name, Email.
Обратите внимание, что таблица xTable содержит каждый столбец, который есть у его 'родителя' с 3 дополнительными полями. Этот шаблон повторяется для всех таблиц, используемых нашей системой.
Таблица пользователей:
UserID int
Name nvarchar
Email nvarchar
таблица xUsers:
xUserID int
OpererationType int
OperationDate datetime
UserID int
Name nvarchar
Email nvarchar
Теперь мой вопрос:
Если у меня есть определенный UserID, для которого есть две записи в таблице xUsers, когда электронное письмо было изменено дважды,
как мне построить запрос, который определяет, какие столбцы (могут быть больше 1) отличаются между двумя строками в таблице аудита?