Реплікація таблиць з різною структурою

Реплікація таблиці, в разі якщо в таблиці передплатника менше стовпців, ніж у таблиці видавця. Цей випадок проілюстровано на малюнку 1.

Реплікація таблиці, в разі якщо в таблиці передплатника більше стовпців, ніж у таблиці видавця. Цей випадок проілюстровано на малюнку 2.
Мал. 2

Реплікація однієї таблиці видавця в дві або більше таблиці передплатника. Цей випадок проілюстровано на малюнку 3:
Мал. 3

Реплікація двох або більше таблиць видавця в одну таблицю передплатника. Цей випадок проілюстровано на малюнку 4:
Мал. 4

індексовані уявлення не підтримують модифікації схеми за допомогою збережених процедур sp_repladdcolumn або sp_repldropcolumn.

деякі адміністратори баз даних (DBA) не люблять використовувати індексовані уявлення, так як вони розуміють, що індексовані уявлення займають простір в базі даних, і впливають на продуктивність при використанні.

Випадок 4 - Реплікація двох і більше таблиць на видавця в одну таблицю на передплатника З усіх раніше розглянутих випадків, випадок 4 - найскладніший випадок. Тривіальне рішення полягає в тому, щоб знову використовувати індексовані уявлення. Якщо Ви не можете використовувати індексовані уявлення, то ваші варіанти рішення будуть більш складними. Проблема полягає в тому, що коли подкомпоненти реплікації створюють збережені процедури, які використовуються в реплікації транзакцій, що відбуваються на видавця, передплатнику, вони можуть реплицировать тільки транзакції, що відбуваються на одній з базових таблиць одночасно; іншими словами, є на таблиці межа, яку компоненти реплікації не можуть переступити.
Розглянемо таблиці на малюнку 4. Якщо транзакція застосована до таблиці authors, і потім до таблиці titles log reader спочатку вважає транзакцію, яка була застосована до таблиці authors на видавця і реплицирует її. Ця транзакція буде представлена ​​як ряд одиничних і передана збереженим процедурам, щоб застосувати транзакцію на передплатника. Тільки потім log reader вважає транзакцію, яка сталася в таблиці titles і реплицирует її.

Тоді як же додати транзакції другий таблиці в реплікацію за допомогою збережених процедур?

Збережіть це як c: \ test.sql

Див. Додаток 7. демонструє користувальницький синхронизирующий об'єкт.

Потім необхідно створити свої реплицируемой збережені процедури, які не представлені в цій статті через їх дуже великого розміру.

На завершення огляду варіантів реплікації таблиць з різними схемами даних хочеться відзначити, що прості рішення (індексовані уявлення або підписки з перетворенням даних) - не завжди оптимальний вибір і, витративши невелику кількість часу на роздуми над цим питанням, Ви можете придумати більш масштабовані рішення.