Sign in with Microsoft
New to Microsoft? Create an account.

Загальні відомості

Якщо будь-якого стовпця, який є частиною унікальні обмеження буде оновлено, а потім SQL Server здійснює оновлення, як "відкладені оновлення", це означає, як пара видалення/Вставити з операцій. Це "відкладені оновлення", викликає реплікації надіслати пара видалення/Вставити операторів абонентів. Існують інші ситуації, які можуть призвести до відкладені оновлення. Таким чином, будь-який бізнес-логіка, ви виконати оновлення тригери або настроювані збережених процедур, у абонента слід також долучити до видалення/ тригери,ВСТАВТЕ або користувача, збережених процедур.

Додаткові відомості

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

Вставлення заяви в її видавця застосовуються до передплатників до виклику процедури, ВСТАВТЕ зберігаються. Так само, ВИДАЛІТЬ оператор застосовані виклику процедури видалення зберігається.

Проте під час на оновлення оператора назву "відкладені оновлення", logreader агента розташування, видаленняпари / процедури,ВСТАВТЕ зберігається, що викликає розповсюдження бази даних застосовується до абонентів, а не зберігаються оновлення процедура виклику. Наприклад, припустимо, що ви маєте публікації таблиці під назвою Таблиця1, ці три стовпці:

  • Col1 int.

  • col2 int.

  • col3 varchar(30).

Лише унікальні обмеження Таблиця1, визначені на col1, через обмеження первинний ключ. Припустімо, що у вас є один запис (1,1, "Даллас").

Під час виконання, цей код:

UPDATE TABLE1 set col1 = 3 where col2 = 'Dallas'

Твердження оновлення SQL Server реалізовано як пара видалення/Вставити заяви, оскільки ви в оновленні col1, з якого має унікальний індекс, визначені. Таким чином, на logreader розташування, видаленняпари /Вставити дзвінки за розповсюдження бази даних. Це може вплинути на будь-який бізнес-логіка у тригери, або настроювані збережених процедур, у абонента. Додаткові бізнес-логіка видалення та Вставлення тригери або збережені процедури для цієї ситуації, має включати.

Якщо ви надаєте перевагу одному логіку, і ви хочете, щоб усі ваші оновлення команди реплікації, як Видалити/,ВСТАВТЕ пар, можна ввімкнути прапор трасування, як описано в цій статті в базі знань Майкрософт:

160181 INF: позначка повторити оновлення, як видалити або вставити пара трасування
Крім того, якщо ви використовуєте фільтр горизонтального публікації та оновлені рядок не відповідають умови фільтрів, лише до видалення виклику процедури надсилаються абонентів. Оновлений рядка раніше не відповідає умови фільтрів, але відповідає за умови, після оновлення, лише Вставити процедури виклик надсилається у процесі реплікації.


У наведеному вище прикладі, припустімо, що необхідно мати горизонтальна фільтр, визначений на Таблиця1: коли col2 = "Даллас". Якщо у вас, виконати цей код:

UPDATE table1 set col2 = 'New York' where col1 = 3

агент logreader лише місця, Видалити збережені процедури виклик застосовується до абонентів, тому що оновлений рядок не відповідає критеріям по горизонталі.

Тепер, якщо ви виконати цей код:

UPDATE table1 set col2 = 'Dallas' where col1 = 3

у logreader створює лише Вставити збережені процедури виклику, так, як у рядку раніше не відповідають умови фільтра.

Незважаючи на те, операція оновлення було виконано, в її видавця, відповідні команди застосовуються в абонента.

Посилання

Для пакета оновлень 1 для SQL Server 2000 або пізніших версій, див. таку статтю бази знань Microsoft Knowledge Base:

302341 INF: новий прапор трасування, щоб увімкнути оновлення Singleton транзакцій реплікації

Потрібна додаткова довідка?

Отримуйте нові функції раніше за інших
Приєднатися до Microsoft оцінювачів

Ця інформація корисна?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?

Дякуємо за відгук!

×