Репликация транзакций с горизонтальной фильтрацией - PullRequest
0 голосов
/ 10 июля 2019

Короче говоря, возможно ли реплицировать строки таблицы на сервере SQL с функцией горизонтальной фильтрации, которая оценивается непрерывно?

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

Я пробовал репликацию транзакций с функцией фильтрации на SQL Server 2017, но функция фильтрации просто оценивается во время создания репликации и после этоговсе новые строки не были переданы подписчику.

1 Ответ

0 голосов
/ 12 июля 2019
  • Добавить столбец в вашу таблицу: Alter Table yourTable Add Old_Enough Bit Not Null Default 0
  • Создание задания, которое выполняется регулярно (например, ежечасно) и выполняется Update yourTable Set Old_Enough = 1 Where Old_Enough = 0 And DateAdd(Day, 2, yourCreationDateColumn) < GetDate()
  • Создание индексированного представления, которое принимает Select ... From yourTable Where Old_Enough = 1
  • Копировать индексированное представление
...