Я работаю над SQL Server 2016 с пакетом обновления 1 (SP1) с функцией отслеживания изменений, и у меня есть вопрос к вам.
У меня есть база данных, в которой включено отслеживание изменений. Эта база данных содержит таблицу Table
, в которой активирована функция «Отслеживание изменений», но не включена опция «Отслеживать обновленные столбцы».
Например, на Table
у меня есть только один столбец с именем Id
типа «uniqueidentifier», который является моим PK.
При запуске моя текущая версия отслеживания изменений - 0.
Я получил это с:
SELECT CHANGE_TRACKING_CURRENT_VERSION();
Я добавил новую строку в Table
:
INSERT INTO dbo.[Table] (Id)
VALUES ('C99F9E2A-1974-47CE-A406-481076F53BBD');
Теперь моя текущая версия отслеживания изменений - 1.
По этому запросу я вижу свой элемент в системе отслеживания изменений:
SELECT *
FROM CHANGETABLE (CHANGES dbo.[Table], 0) CT;
Результат:
Теперь я удаляю свою строку следующим образом:
DELETE FROM dbo.[Table]
WHERE Id = 'C99F9E2A-1974-47CE-A406-481076F53BBD';
Отслеживание изменений текущей версии теперь 2.
Я вставляю его снова с тем же запросом, что и предыдущий.
Изменение отслеживания текущей версии сейчас 3.
С этим запросом я получил такой результат:
SELECT *
FROM CHANGETABLE (CHANGES dbo.[Table], 1) CT;
Теперь мой вопрос, почему я получил "U" в SYS_CHANGE_OPERATION?
Почему бы "I" не вызвать 1
Спасибо за вашу помощь!