Мы реплицируем данные между SQL Server 2008 (Source) и SQL Server 2012 (Destination). Нам было предложено ограничить реплицируемые данные тем, что нам нужно.Фильтрация репликации SQL Server
Итак, мы можем добавить фильтр, НО, фильтр основан на чем-то в другой таблице. и мы не можем использовать JOIN. (Транзакционная репликация).
Но я заметил, что в редакторе для ИНЕКЕ, она позволяет это:
SELECT * FROM party WHERE party_id NOT IN (SELECT child_party_id FROM placement)
Вот что нам нужно фильтровать. Редактор просто позволяет мне помещать что-то, что не будет работать, потому что данные в получателе вообще не фильтруются.
Filter_clause - это просто оператор where, а не целое. Я не знаю, будет ли это работать (иначе я бы просто сказал, что это ответ), но попробуйте поставить «party_id NOT IN (SELECT child_party_id FROM placement)». Я подозреваю, что это не сработает в долгосрочной перспективе, так как репликация не отслеживает изменения таблицы размещения и внесения соответствующих изменений в таблицу сторонних производителей. Обходной путь может заключаться в создании и тиражировании индексированного представления. –