Как управлять столбцами идентификаторов (программирование репликации на языке Transact-SQL)
Если операции вставки с подписчика реплицируются обратно на издатель, необходимо управлять столбцами идентификаторов, чтобы избежать присваивания одинаковых значений идентификаторов на подписчике и издателе. Репликация может управлять диапазонами идентификаторов автоматически, или можно управлять диапазонами идентификаторов вручную. Чтобы указать параметры управления диапазонами идентификаторов, при создании статьи можно использовать хранимые процедуры репликации. Сведения о параметрах управления диапазонами идентификаторов, предоставляемых репликацией, см. в разделе Репликация столбцов идентификаторов.
Примечание |
---|
При публикации таблицы в нескольких публикациях необходимо указать одинаковые параметры управления диапазонами идентификаторов для всех публикаций. Дополнительные сведения см. в подразделе «Публикация таблиц в нескольких публикациях» раздела Публикация данных и объектов базы данных. |
Включение автоматического управления диапазонами идентификаторов при определении статей для публикации транзакций
На издателе в базе данных публикации выполните процедуру sp_addarticle. Если в публикуемой исходной таблице имеется столбец идентификаторов, укажите значение auto в параметре @identityrangemanagementoption, диапазон значений идентификаторов, назначенный издателю, в параметре @pub_identity_range, диапазон значений идентификаторов, назначенный каждому подписчику, в параметре @identity_range и процент использованных значений идентификаторов, прежде чем назначить новый диапазон значений идентификаторов параметру @threshold. Дополнительные сведения об определении статей см. в разделе Как определить статью (программирование репликации на языке Transact-SQL).
Примечание Убедитесь, что тип данных столбца идентификаторов достаточно большой, чтобы поддерживать полный диапазон идентификаторов, назначаемый всем подписчикам.
Отключение автоматического управления диапазонами идентификаторов при определении статей для публикации транзакций
На издателе в базе данных публикации выполните процедуру sp_addarticle. Укажите значение manual в параметре @identityrangemanagementoption. Дополнительные сведения об определении статей см. в разделе Как определить статью (программирование репликации на языке Transact-SQL).
Назначьте диапазоны для столбцов идентификаторов в статье на подписчике, чтобы избежать возникновения конфликтов при обновлении подписчиков. Дополнительные сведения см. в подразделе «Назначение диапазонов для ручного управления диапазонами идентификаторов» раздела Репликация столбцов идентификаторов.
Включение автоматического управления диапазонами идентификаторов при определении статей для публикации слиянием
На издателе в базе данных публикации выполните процедуру sp_addmergearticle. Если в публикуемой исходной таблице имеется столбец идентификаторов, укажите значение auto в параметре @identityrangemanagementoption; диапазон значений идентификаторов, назначенный серверной подписке, в параметре @pub_identity_range; диапазон значений идентификаторов, назначенный издателю и каждой клиентской подписке, в параметре @identity_range; и процент значений идентификаторов, который должен быть использован перед назначением нового диапазона значений идентификаторов, в параметре @threshold. Дополнительные сведения о времени назначения диапазонов идентификаторов см. в подразделе «Назначение диапазонов идентификаторов» раздела Репликация столбцов идентификаторов. Дополнительные сведения об определении статей см. в разделе Как определить статью (программирование репликации на языке Transact-SQL).
Примечание Убедитесь, что тип данных столбца идентификаторов достаточно большой, чтобы поддерживать полный диапазон идентификаторов, назначаемый всем подписчикам, особенно для подписчиков с серверными подписками.
Отключение автоматического управления диапазонами идентификаторов при определении статей для публикации слиянием
На издателе в базе данных публикации выполните процедуру sp_addmergearticle. Укажите одно из следующих значений в параметре @identityrangemanagementoption:
manual — диапазоны идентификаторов должны назначаться вручную для обновляемых подписчиков;
none — столбцы идентификаторов на издателе не будут определяться как столбцы идентификаторов на подписчике.
Дополнительные сведения об определении статей см. в разделе Как определить статью (программирование репликации на языке Transact-SQL).
Назначьте диапазоны для столбцов идентификаторов в статье на подписчике, чтобы избежать возникновения конфликтов при обновлении подписчиков.
Изменение настроек автоматического управления диапазонами идентификаторов для существующей статьи в публикации моментального снимка или публикации транзакций
На издателе в базе данных публикации выполните хранимую процедуру sp_helparticle и проверьте значение параметра identityrangemanagementoption в результирующем наборе. Если это значение равно 0, автоматическое управление диапазонами идентификаторов отключено.
Если значение identityrangemanagementoption в результирующем наборе равно 1, измените настройки следующим образом.
Чтобы изменить назначенные диапазоны идентификаторов, выполните на издателе в базе данных публикации хранимую процедуру sp_changearticle. Укажите значение identity_range или pub_identity_range в параметре @property и задайте новое значение диапазона в параметре @value.
Чтобы изменить пороговое значение, с которого назначаются диапазоны идентификаторов, выполните на издателе в базе данных публикации хранимую процедуру sp_changearticle. Укажите значение threshold в параметре @property и задайте новое значение порога в параметре @value.
Изменение настроек автоматического управления диапазонами идентификаторов для существующей статьи в публикации слиянием
На издателе в базе данных публикации выполните хранимую процедуру sp_helpmergearticle и проверьте значение параметра identity_support в результирующем наборе. Если это значение равно 0, автоматическое управление диапазонами идентификаторов отключено.
Если значение identity_support в результирующем наборе равно 1, измените настройки следующим образом.
Чтобы изменить назначенный диапазон идентификаторов, выполните на издателе в базе данных публикации хранимую процедуру sp_changemergearticle. Укажите значение identity_range или pub_identity_range в параметре @property и задайте новое значение диапазона в параметре @value.
Чтобы изменить пороговое значение, с которого назначаются диапазоны идентификаторов, выполните на издателе в базе данных публикации хранимую процедуру sp_changemergearticle. Укажите значение threshold в параметре @property и задайте новое значение порога в параметре @value. Дополнительные сведения о времени назначения диапазонов идентификаторов см. в подразделе «Назначение диапазонов идентификаторов» раздела Репликация столбцов идентификаторов.
Чтобы отключить автоматическое управление диапазонами идентификаторов, выполните на издателе в базе данных публикации хранимую процедуру sp_changemergearticle. Укажите значение identityrangemanagementoption в параметре @property и значение manual или none в параметре @value.