Реплікація таблиці, в разі якщо в таблиці передплатника менше стовпців, ніж у таблиці видавця. Цей випадок проілюстровано на малюнку 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. демонструє користувальницький синхронизирующий об'єкт.
Потім необхідно створити свої реплицируемой збережені процедури, які не представлені в цій статті через їх дуже великого розміру.
На завершення огляду варіантів реплікації таблиць з різними схемами даних хочеться відзначити, що прості рішення (індексовані уявлення або підписки з перетворенням даних) - не завжди оптимальний вибір і, витративши невелику кількість часу на роздуми над цим питанням, Ви можете придумати більш масштабовані рішення.