Инструкции UPDATE могут быть реплицированы как вставки или удаления пары

Переводы статьи Переводы статьи
Код статьи: 238254 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Аннотация

При обновлении любого столбца, который является частью уникального ограничения, то SQL Server реализует обновление как «отложенное обновление», что означает, как Удалитьпару / операциивставки . Это «отложенное обновление» приводит репликации для отправки пары Удалить/ инструкцииINSERT для подписчиков. Также существуют другие ситуации, которые могут вызвать отложенного обновления. Таким образом, любой бизнес-логики, реализовать в триггеры UPDATE или пользовательские хранимые процедуры на подписчике должны также быть включены в Удалить/ пользовательские хранимые процедуры или триггерывставки .

Дополнительная информация

По умолчанию репликация транзакций является использование вставки, обновления и удаления пользовательских хранимых процедур для применения изменений на подписчиках.

Подписчикам через вызов Вставить хранимые процедуры применяются инструкции INSERT , выполненных на издателе. Аналогичным образом инструкция DELETE применяется через вызов Удаление хранимой процедуры.

Тем не менее, если инструкция UPDATE выполняется как "отложенного обновления", помещается агент чтения журнала в паре Удалить/ вызываетДОБАВЛЕНИЕ хранимой процедуры в базе данных распространителя, применяемое для подписчиков, а не для обновления вызова хранимой процедуры. Например предположим, что имеется таблица публикаций, с именем TABLE1, и эти три столбца:
  • col1 int
  • столбец Col2 int
  • Col3 varchar(30).
Определен только уникальности для таблицы TABLE1 col1 через ограничение первичного ключа. Предположим, что есть одна запись (1,1, "Даллас").

При выполнении этого кода:
UPDATE TABLE1 set col1 = 3 where col2 = 'Dallas'
				
Инструкция UPDATE реализуется SQL Server как Удалитьпару / инструкцииINSERT с момента обновления col1, который был определен уникальный индекс. Таким образом, чтения журнала помещает пару УдалитьиВставить вызов в базе данных распространителя. Это может повлиять на любой бизнес-логики, который присутствует в триггера или пользовательской хранимой процедуры на подписчике. Следует включить дополнительную бизнес-логику в удаления и вставки триггера или хранимой процедуры для обработки этой ситуации.

Если вы предпочитаете использовать один логики и требуется, чтобы все команды обновления реплицируются как Удалить/Добавить пары можно включить флаг трассировки, как описано в статье базы знаний Майкрософт:
160181 INF: Флаг трассировки для обновления, вставки или удаления пары репликации
Кроме того Если в публикации используется горизонтальный фильтр и обновленная строка не удовлетворяет условию фильтра, только Удалить вызов процедуры отправляется подписчикам. Обновленная строка ранее не соответствует условию фильтра, условие после обновления только Вставить вызов процедуры отправляется через процесс репликации.

В предыдущем примере предположим, что также горизонтальный фильтр, определенные для таблицы TABLE1: где col2 = «Даллас». Если выполнить этот код:
UPDATE table1 set col2 = 'New York' where col1 = 3
				
агент чтения журнала только звонит Удаление хранимой процедуры по применять подписчикам, поскольку обновленная строка не соответствует критериям горизонтальный фильтр.

Теперь, если выполнить этот код:
UPDATE table1 set col2 = 'Dallas' where col1 = 3
				
чтения журнала создает только Вставить хранимые процедуры вызова, так как строки не соответствует ранее в условие фильтра.

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

Ссылки

Пакет обновления 1 для SQL Server 2000 или более поздней версии обратитесь к следующей статье Microsoft Knowledge Base:
302341 INF: Новый флаг трассировки для обеспечения обновления Singleton для репликации транзакций

Свойства

Код статьи: 238254 - Последний отзыв: 17 августа 2013 г. - Revision: 3.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
Ключевые слова: 
kbinfo kbmt KB238254 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.
Эта статья на английском языке: 238254

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com