Как получить значение «start_lsn» в приложении
-
13-12-2019 - |
Вопрос
База данных отслеживает все изменения с помощью механизма захвата данных «
Я хочу добавить вспомогательную таблицу с столбцами " start_lsn " и " userId " Чтобы связать транзакцию с авторизованным пользователем. Есть ли способ определить значение « start_lsn
Решение
В настоящее время я нашел следующее решение:
1)
- .
-
Создать еще одну таблицу (например, useractivity "), которая имеет " ID " и " usid " столбцы;
-
Используйте столбец «ID» в качестве основного ключа;
-
Включить вариант CDC для этой таблицы.
2)
- .
-
Оберните все операции модификации данных с помощью
Transaction Case ; -
Добавьте новую запись данных в эту таблицу с текущим "userid" во время определенной транзакции:
- .
-
Начните <сильные> эксклюзивные
транзакции;
-
-
Выполните "манипулирование данными";
-
Вставьте информацию о
«UserID» в таблицу ".
Поскольку транзакция является эксклюзивным, и все операции были выполнены в пределах одной области транзакции, "last_lsn" ( "start_lsn" ) значение одинаково.
После этого, используя оператор Join, объединить данные из таблицы "UserActivity" с информацией о манипулировании данных.