Я обновляю базу данных SQL Server 2000 до SQL Server 2008 R2. Я хочу использовать функцию «Изменить данные». Im мое существующее приложение У меня есть аналогичная функциональность, но я использую триггеры и историческую таблицу с префиксом Hst_
с почти аналогичной схемой, как и исходные таблицы.Change Data Capture - начальная загрузка исторических данных
Мой вопрос: Есть ли способ перенести мои данные из Hst_
таблиц в таблицы, используемые функцией CDC?
Я думал сделать это так:
- У меня есть таблица
Cases
. - Я использую свой собственный механизм историзации, поэтому у меня также есть три триггера (при вставке, обновлении и удалении) и двойная таблица
Hst_Cases
. - Теперь я позволяя CDC на столе
Cases
- CDC создает функцию, которая возвращает исторические данные (
fn_cdc_get_all_changes_dbo_Cases
), а также система таблиц, которая фактически содержит данные (cdc.dbo_Cases_CT
). - Я мог бы вставить данные из
Hst_Cases
вcdc.dbo_Cases_CT
, но у меня есть следующие проблемы:- я не знаю, как получить
__$start_lsn
и__$seqval
. - Трудно определить
__$update_mask
(мне нужно сравнить каждую строку).
- я не знаю, как получить
Есть единственный способ сделать это? Я хочу избежать ситуации, затем присоединяюсь к «новым» историческим данным со «старыми» историческими данными из таблиц Hst_
.
Спасибо!