Где хранить временные данные во время репликации?

#sql-server #sql-server-2008 #replication #temp-tables

#sql-server #sql-server-2008 #репликация #временные таблицы

Вопрос:

Я только начал играть с репликацией нашей системы и не уверен, как лучше всего справиться с этой проблемой.

Я хочу отфильтровать данные, но это не так просто, как «где ColumnName = ‘abc'». Итак, я пишу большой сложный процесс, который определяет, какие записи из каждой таблицы будут реплицироваться. Я сохраняю PKS для каждой таблицы во временных таблицах. Я предполагал, что pre_snapshot_script создаст и заполнит эти таблицы, а post_snapshot_script удалит их. Инструкции фильтра для этих таблиц затем читают что-то вроде «где PK в (выберите pk_id из временной таблицы)»

Итак. Куда я могу поместить эти данные? Нужно ли мне создавать постоянные таблицы в моей базе данных, чтобы они были помечены для репликации? Я предполагаю, что любые таблицы #temp или ##temp не будут работать.

Ответ №1:

Я думаю, что ваша идея PK in (выберите PK из таблицы) может быть правильной.

Вы правы, что это должна быть постоянная таблица. Можете ли вы предоставить более подробную информацию о сценарии? Вы создаете моментальные снимки ежечасно / ежедневно / еженедельно? Любая транзакционная репликация продолжается после? Какую логику вы используете?

Эти ответы могут помочь осветить другие решения или помочь убедиться, что ваш первоначальный путь был правильным.