Поделиться через


Как указать уровень отслеживания и разрешения конфликтов для статей публикаций слиянием (программирование репликации на языке Transact-SQL)

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

Настройка параметров отслеживания конфликтов для новой статьи публикации слиянием

  • На издателе базы данных публикации выполните хранимую процедуру sp_addmergearticle и присвойте параметру @column_tracking одно из приведенных ниже значений:

    • true — использовать для статьи отслеживание на уровне столбцов.

    • false — использовать отслеживание на уровне строк (значение по умолчанию).

Изменение параметров отслеживания конфликтов для статьи публикации слиянием

  1. Чтобы определить текущие параметры отслеживания конфликтов для статьи публикации слиянием, выполните хранимую процедуру sp_helpmergearticle. Проверьте значение параметра column_tracking в результирующем наборе для статьи. Значение 1 показывает, что используется отслеживание конфликтов уровня столбца, а значение 0 — отслеживание конфликтов уровня строки.

  2. В базе данных публикации на издателе выполните процедуру sp_changemergearticle. В качестве значения параметра @property задайте значение column_tracking, а параметру @value присвойте одно из приведенных ниже значений:

    • true — использовать для статьи отслеживание на уровне столбцов;

    • false — использовать отслеживание на уровне строк (значение по умолчанию).

    Присвойте значение 1 параметрам @force_invalidate_snapshot и @force_reinit_subscription.