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


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

Если операции вставки с подписчика реплицируются обратно на издатель, необходимо управлять столбцами идентификаторов, чтобы избежать присваивания одинаковых значений идентификаторов на подписчике и издателе. Репликация может управлять диапазонами идентификаторов автоматически, или можно управлять диапазонами идентификаторов вручную. Чтобы указать параметры управления диапазонами идентификаторов, при создании статьи можно использовать хранимые процедуры репликации. Сведения о параметрах управления диапазонами идентификаторов, предоставляемых репликацией, см. в разделе Репликация столбцов идентификаторов.

ПримечаниеПримечание

При публикации таблицы в нескольких публикациях необходимо указать одинаковые параметры управления диапазонами идентификаторов для всех публикаций. Дополнительные сведения см. в подразделе «Публикация таблиц в нескольких публикациях» раздела Публикация данных и объектов базы данных.

Включение автоматического управления диапазонами идентификаторов при определении статей для публикации транзакций

  • На издателе в базе данных публикации выполните процедуру sp_addarticle. Если в публикуемой исходной таблице имеется столбец идентификаторов, укажите значение auto в параметре @identityrangemanagementoption, диапазон значений идентификаторов, назначенный издателю, в параметре @pub_identity_range, диапазон значений идентификаторов, назначенный каждому подписчику, в параметре @identity_range и процент использованных значений идентификаторов, прежде чем назначить новый диапазон значений идентификаторов параметру @threshold. Дополнительные сведения об определении статей см. в разделе Как определить статью (программирование репликации на языке Transact-SQL).

    ПримечаниеПримечание

    Убедитесь, что тип данных столбца идентификаторов достаточно большой, чтобы поддерживать полный диапазон идентификаторов, назначаемый всем подписчикам.

Отключение автоматического управления диапазонами идентификаторов при определении статей для публикации транзакций

  1. На издателе в базе данных публикации выполните процедуру sp_addarticle. Укажите значение manual в параметре @identityrangemanagementoption. Дополнительные сведения об определении статей см. в разделе Как определить статью (программирование репликации на языке Transact-SQL).

  2. Назначьте диапазоны для столбцов идентификаторов в статье на подписчике, чтобы избежать возникновения конфликтов при обновлении подписчиков. Дополнительные сведения см. в подразделе «Назначение диапазонов для ручного управления диапазонами идентификаторов» раздела Репликация столбцов идентификаторов.

Включение автоматического управления диапазонами идентификаторов при определении статей для публикации слиянием

  • На издателе в базе данных публикации выполните процедуру sp_addmergearticle. Если в публикуемой исходной таблице имеется столбец идентификаторов, укажите значение auto в параметре @identityrangemanagementoption; диапазон значений идентификаторов, назначенный серверной подписке, в параметре @pub_identity_range; диапазон значений идентификаторов, назначенный издателю и каждой клиентской подписке, в параметре @identity_range; и процент значений идентификаторов, который должен быть использован перед назначением нового диапазона значений идентификаторов, в параметре @threshold. Дополнительные сведения о времени назначения диапазонов идентификаторов см. в подразделе «Назначение диапазонов идентификаторов» раздела Репликация столбцов идентификаторов. Дополнительные сведения об определении статей см. в разделе Как определить статью (программирование репликации на языке Transact-SQL).

    ПримечаниеПримечание

    Убедитесь, что тип данных столбца идентификаторов достаточно большой, чтобы поддерживать полный диапазон идентификаторов, назначаемый всем подписчикам, особенно для подписчиков с серверными подписками.

Отключение автоматического управления диапазонами идентификаторов при определении статей для публикации слиянием

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

    • manual — диапазоны идентификаторов должны назначаться вручную для обновляемых подписчиков;

    • none — столбцы идентификаторов на издателе не будут определяться как столбцы идентификаторов на подписчике.

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

  2. Назначьте диапазоны для столбцов идентификаторов в статье на подписчике, чтобы избежать возникновения конфликтов при обновлении подписчиков.

Изменение настроек автоматического управления диапазонами идентификаторов для существующей статьи в публикации моментального снимка или публикации транзакций

  1. На издателе в базе данных публикации выполните хранимую процедуру sp_helparticle и проверьте значение параметра identityrangemanagementoption в результирующем наборе. Если это значение равно 0, автоматическое управление диапазонами идентификаторов отключено.

  2. Если значение identityrangemanagementoption в результирующем наборе равно 1, измените настройки следующим образом.

    • Чтобы изменить назначенные диапазоны идентификаторов, выполните на издателе в базе данных публикации хранимую процедуру sp_changearticle. Укажите значение identity_range или pub_identity_range в параметре @property и задайте новое значение диапазона в параметре @value.

    • Чтобы изменить пороговое значение, с которого назначаются диапазоны идентификаторов, выполните на издателе в базе данных публикации хранимую процедуру sp_changearticle. Укажите значение threshold в параметре @property и задайте новое значение порога в параметре @value.

Изменение настроек автоматического управления диапазонами идентификаторов для существующей статьи в публикации слиянием

  1. На издателе в базе данных публикации выполните хранимую процедуру sp_helpmergearticle и проверьте значение параметра identity_support в результирующем наборе. Если это значение равно 0, автоматическое управление диапазонами идентификаторов отключено.

  2. Если значение identity_support в результирующем наборе равно 1, измените настройки следующим образом.

    • Чтобы изменить назначенный диапазон идентификаторов, выполните на издателе в базе данных публикации хранимую процедуру sp_changemergearticle. Укажите значение identity_range или pub_identity_range в параметре @property и задайте новое значение диапазона в параметре @value.

    • Чтобы изменить пороговое значение, с которого назначаются диапазоны идентификаторов, выполните на издателе в базе данных публикации хранимую процедуру sp_changemergearticle. Укажите значение threshold в параметре @property и задайте новое значение порога в параметре @value. Дополнительные сведения о времени назначения диапазонов идентификаторов см. в подразделе «Назначение диапазонов идентификаторов» раздела Репликация столбцов идентификаторов.

    • Чтобы отключить автоматическое управление диапазонами идентификаторов, выполните на издателе в базе данных публикации хранимую процедуру sp_changemergearticle. Укажите значение identityrangemanagementoption в параметре @property и значение manual или none в параметре @value.