Настройка: существующий сценарий репликации слиянием SQL2008. Большая серверная база данных, включая представления и хранимые процедуры, реплицируется на клиентские машины.
Что я делаю:
- добавление новой таблицы в базу данных
- отметьте новую таблицу для репликации (используя
SP_AddMergeArticle
)
- Изменить представление (которое уже является частью реплицированного содержимого) обновлено, чтобы включить поля из этой новой таблицы (которая присоединена к таблицам в существующем представлении). Хранимая процедура также обновляется.
Проблема: таблица реплицируется на клиентские машины, но представление не обновляется. Хранимая процедура также не обновляется.
Бесполезный обходной путь: если я запускаю агент моментальных снимков после вызова SP_AddMergeArticle
и перед обновлением представления / SP , и представление, и хранимая процедура изменяются правильно, реплицируются в клиент.
Большая проблема: Я выполняю список сценариев базы данных в транзакции, как часть более крупного процесса. Агент моментальных снимков не может быть запущен во время транзакции, и если я прерву транзакцию (например, запустив сценарии в нескольких транзакциях), я потеряю возможность откатить изменения в случае сбоя.
У кого-нибудь есть предложения? Похоже, мне не хватает чего-то очевидного, потому что я не понимаю, почему изменения в view / sproc не будут реплицировать в любом случае независимо от того, что происходит с новой таблицей.