1

Мы запускаем SQL 2008 R2 и начали исследовать отслеживание изменений в качестве нашего способа идентификации изменений для экспорта в наш хранилище данных. Нас интересуют только конкретные столбцы.Отслеживание изменений SQL SYS_CHANGE_COLUMNS

Мы идентифицируем изменения в реплицированной копии исходной базы данных. Если мы запрашиваем таблицу изменений на исходном сервере, доступно любое конкретное обновление столбца и заполняется SYS_CHANGE_COLUMNS.

Однако в реплицированной копии изменения отслеживаются, но поле SYS_CHANGE_COLUMNS всегда имеет значение NULL для изменения обновления.

Обновленные колонковые колонтитулы для абонента установлены на true.

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

Любая помощь или альтернативные подходы были бы высоко оценены.

Благодаря

ответ

0

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

SYS_CHANGE_COLUMNS имеет значение null, когда каждый столбец обновляется. «Обновлено» здесь не означает, что значение изменено, это просто означает, что столбец был затронут оператором DML. Итак, «update t set c = c» означает, что столбец c «обновлен».

Вставляет и удаляет, поэтому всегда имеет значение SYS_COLUMNS_CHANGED «null», поскольку вся строка зависит от вставки или удаления. Но большинство технологий репликации делают обновление, устанавливая каждое значение столбца в значение столбца в источнике репликации. Поэтому «обновление» репликации будет касаться каждого столбца, поэтому значение SYS_CHANGE_COLUMNS всегда будет равно нулю.

 Смежные вопросы

  • Нет связанных вопросов^_^