Репликация SQL Server 2005 года межсерверного DBS — должна знать, когда строка была вставлена/обновлена на целевом сервере

Я - менеджер по BI сверху установки SAP. У меня есть DB SAP, в который приложение SAP пишет данные. Чтобы заставить среду запрашивать, не загружаясь на соке, я зеркально отразил DB SAP на сервере, и это хорошо работает.

Каждую ночь я делаю предельную нагрузку данных, и они хорошо работают на данный момент. Я знаю, что где-нибудь по линии, должен буду начать делать инкрементные обновления.

Это будет намного легче, если я буду знать, какие строки в таблицах были изменены или добавлены, и когда. Действительно ли возможно сделать триггер на целевом сервере, который пишет в таблицу, когда это было обновлено или создано? Много времени, нет никакого признака даты, строка была создана в исходных таблицах. Я не хорошо познакомился с правилами зеркального отражения и репликации

1
задан Michael Mrozek 14 July 2010 в 14:07
поделиться

1 ответ

Самый простой способ исправить это - обновить вашу таблицу, добавив столбец timestamp, и установить его по умолчанию на текущую версию элемента. Вы можете посмотреть здесь для получения дополнительной информации, но в основном формат следующий...

ALTER TABLE <tablename> ADD timestamp

Как отмечено в этой ссылке, вам не нужно указывать имя столбца, поскольку он автоматически начнет отслеживать временную метку при вставках/обновлениях.

Обратите внимание, что это решение не дает вам человекочитаемое время - указанный элемент уникален для (просто то, что удобно для версионирования). Если вам нужно время, вы можете сделать столбец DATETIME, который по умолчанию будет GETDATE() (см. здесь для дополнительной информации). Когда вы вставляете/обновляете строку, вы просто игнорируете вставку/обновление чего-либо в этом конкретном столбце, и текущее DATETIME будет добавлено за вас.

2
ответ дан 2 September 2019 в 23:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: