#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 из таблицы) может быть правильной.
Вы правы, что это должна быть постоянная таблица. Можете ли вы предоставить более подробную информацию о сценарии? Вы создаете моментальные снимки ежечасно / ежедневно / еженедельно? Любая транзакционная репликация продолжается после? Какую логику вы используете?
Эти ответы могут помочь осветить другие решения или помочь убедиться, что ваш первоначальный путь был правильным.