sp_changemergepublication (Transact-SQL)
Изменяет свойства публикации слиянием. Эта хранимая процедура выполняется на издателе в базе данных публикации.
Синтаксические обозначения Transact-SQL
Синтаксис
sp_changemergepublication [ @publication= ] 'publication'
[ , [ @property= ] 'property' ]
[ , [ @value= ] 'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
Аргументы
[ @publication=\] 'publication'
Имя публикации. Аргумент publication имеет тип sysname и не имеет значения по умолчанию.[ @property=\] 'property'
Свойство, изменяемое для данной публикации. Аргумент property имеет тип sysname и может принимать одно из значений, перечисленных в следующей таблице.[ @value=\] 'value'
Новое значение заданного свойства. Аргумент value имеет тип nvarchar(255) и может принимать одно из значений, перечисленных в следующей таблице.В данной таблице описаны свойства публикации, доступные для изменения, а также ограничения на значения этих свойств.
Свойство
Значение
Описание
allow_anonymous
true
Анонимные подписки разрешены.
false
Анонимные подписки запрещены.
allow_partition_realignment
true
Операции удаления отправляются на подписчик для отражения результатов изменений секции путем удаления данных, которые больше не являются частью секции подписчика. Это поведение по умолчанию.
false
Данные из старой секции остаются на подписчике, а изменения данных, произведенные на издателе, на этот подписчик не реплицируются. Вместо этого изменения в подписчике реплицируются на издатель. Такой метод применяется для сохранения в подписке данных из старой секции, чтобы обеспечить доступ к архивным данным.
allow_pull
true
Подписки по запросу для данной публикации разрешены.
false
Подписки по запросу для данной публикации не разрешены.
allow_push
true
Принудительные подписки для данной публикации разрешены.
false
Принудительные подписки для данной публикации не разрешены.
allow_subscriber_initiated_snapshot
true
Подписчик может инициировать процесс получения моментального снимка.
false
Подписчик не может инициировать процесс получения моментального снимка.
allow_subscription_copy
true
Можно копировать базы данных, подписанные на эту публикацию.
false
Нельзя копировать базы данных, подписанные на эту публикацию.
allow_synctoalternate
true
Разрешает альтернативному участнику синхронизации выполнять синхронизацию с этим издателем.
false
Не разрешает альтернативному участнику синхронизации выполнять синхронизацию с этим издателем.
allow_web_synchronization
true
Подписки можно синхронизировать через HTTPS.
false
Подписки нельзя синхронизировать через HTTPS.
alt_snapshot_folder
Указывает местоположение альтернативной папки для моментального снимка.
automatic_reinitialization_policy
1
Перед повторной инициализацией подписки передаются изменения из подписчика.
0
Перед повторной инициализацией подписки изменения из подписчика не передаются.
centralized_conflicts
true
Все конфликтующие записи хранятся на издателе. После изменения этого свойства необходимо выполнить повторную инициализацию существующих подписчиков.
false
Конфликтующие записи хранятся на сервере, который был выбран в качестве проигравшего при устранении конфликта. После изменения этого свойства необходимо выполнить повторную инициализацию существующих подписчиков.
compress_snapshot
true
Моментальный снимок в альтернативной папке снимков сжимается в формате CAB. Сжатие моментального снимка в папке моментальных снимков по умолчанию невозможно. Изменение этого свойства потребует создания нового моментального снимка.
false
По умолчанию моментальный снимок не сжимается. Изменение этого свойства потребует создания нового моментального снимка.
conflict_logging
publisher
Конфликтующие записи хранятся на издателе.
subscriber
Конфликтующие записи хранятся на подписчике, вызвавшем конфликт. Не поддерживается для подписчиков SQL Server Compact.
both
Конфликтующие записи хранятся одновременно на издателе и на подписчике.
conflict_retention
Значение типа int, указывающее срок (в днях), в течение которого хранятся данные конфликта. Если аргумент conflict_retention имеет значение 0, то очистка конфликтующих записей не требуется.
description
Описание публикации.
dynamic_filters
true
Публикация фильтруется на основе динамического предложения.
false
Публикация не фильтруется динамически.
enabled_for_internet
true
Публикация через Интернет разрешена. Для передачи файлов моментальных снимков на подписчик можно использовать протокол FTP. Файлы синхронизации для публикации размещаются в каталоге «C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp».
false
Публикация через Интернет не разрешена.
ftp_address
Сетевой адрес службы FTP для распространителя. Указывает место хранения файлов моментальных снимков публикации.
ftp_login
Пароль пользователя для подключения к службе FTP.
ftp_password
Пароль пользователя для подключения к службе FTP.
ftp_port
Номер порта службы FTP для распространителя. Указывает номер порта TCP FTP-сайта, на котором хранятся файлы моментальных снимков публикации.
ftp_subdirectory
Указывает, где создаются файлы моментальных снимков, если публикация поддерживает распространение моментальных снимков по протоколу FTP.
generation_leveling_threshold
int
Задает число изменений, которые содержатся в поколении. Поколение — это набор изменений, переданных издателю или подписчику.
keep_partition_changes
true
Синхронизация оптимизирована и влияет только на подписчиков, чьи строки принадлежат измененным секциям. Изменение этого свойства потребует создания нового моментального снимка.
false
Синхронизация не оптимизирована, и при изменении данных в секции проверяются секции, переданные на подписчики. Изменение этого свойства потребует создания нового моментального снимка.
max_concurrent_merge
Значение типа int, представляющее максимальное число процессов слияния, которые могут одновременно выполняться для публикации. Если это значение равно 0, то число процессов неограниченно. Если на одно и то же время запланировано большее число процессов слияния, то лишние задания помещаются в очередь и ожидают завершения текущих.
max_concurrent_dynamic_snapshots
Значение типа int, представляющее максимальное число одновременных сеансов создания моментальных снимков отфильтрованных данных, которые могут выполняться для публикации слиянием, использующей параметризованные фильтры строк. Значение 0 указывает на отсутствие ограничений. Если на одно и то же время запланировано выполнение большего числа процессов создания моментальных снимков, то лишние задания помещаются в очередь и ожидают завершения текущих.
post_snapshot_script
Задает указатель на расположение .sql-файла. Агент распространителя или агент слияния выполняет заключительный скрипт создания моментального снимка после того, как скрипты и данные всех реплицируемых объектов используются во время начальной синхронизации. Изменение этого свойства потребует создания нового моментального снимка.
pre_snapshot_script
Задает указатель на расположение .sql-файла. Агент слияния выполняет предварительный скрипт моментального снимка до выполнения скриптов реплицируемых объектов, если моментальный снимок делается для подписчика. Изменение этого свойства потребует создания нового моментального снимка.
publication_compatibility_level
100RTM
SQL Server 2008
90RTM
SQL Server 2005
publish_to_activedirectory
true
Этот аргумент устарел и поддерживается только для обратной совместимости скриптов. Сведения о публикации больше не могут быть добавлены в Active Directory.
false
Удаляет сведения о публикации из службы Active Directory.
replicate_ddl
1
Производится репликация инструкций DDL, выполняемых на издателе.
0
Репликация инструкций DDL не производится.
retention
Значение типа int, представляющее число единиц времени retention_period_unit, в течение которых хранятся изменения для данной публикации. Если подписка не синхронизирована в течение срока хранения, а ожидающие обработки изменения, которые были бы получены, удалены операцией очистки на стороне распространителя, срок действия подписки истекает, и подписка должна быть создана заново. Максимальный допустимый срок хранения равен числу дней между 31 декабря 9999 года и текущей датой.
Примечание Срок хранения для публикации слиянием предусматривает наличие 24-часового льготного срока для согласования работы подписчиков в разных часовых поясах.
retention_period_unit
day
Срок хранения указан в днях.
week
Срок хранения указан в неделях.
month
Срок хранения указан в месяцах.
year
Срок хранения указан в годах.
snapshot_in_defaultfolder
true
Файлы моментального снимка сохранены в папке для моментальных снимков по умолчанию.
false
Файлы моментальных снимков хранятся в альтернативном каталоге, на который указывает аргумент alt_snapshot_folder. Такое сочетание позволяет размещать файлы моментальных снимков одновременно и в каталоге по умолчанию, и в альтернативном каталоге.
snapshot_ready
true
Моментальный снимок доступен для публикации.
false
Моментальный снимок для публикации не доступен.
status
active
Публикация находится в активном состоянии.
inactive
Публикация находится в неактивном состоянии.
sync_mode
native или
bcp native
Для исходного моментального снимка используются результаты вывода всех таблиц в собственном режиме программы массового копирования.
character
или bcp character
Для исходного моментального снимка используются результаты вывода всех таблиц в символьном режиме программы массового копирования, что требуется подписчикам, отличным от SQL Server.
use_partition_groups
Примечание После использования partition_groups, если нужно вернуться к использованию setupbelongs и установить use_partition_groups=false в changemergearticle, то это не может быть неправильно отражено после получения моментального снимка. Триггеры, формируемые моментальным снимком, совместимы с группами секций.
Такую ситуацию можно обойти следующим образом: установить состояние в «Неактивный», изменить use_partition_groups, а затем установить состояние «Активный».
true
Публикация использует предварительно вычисляемые секции.
false
Публикация не использует предварительно вычисляемые секции.
validate_subscriber_info
Содержит список функций для получения сведений о подписчике. Затем проверяет условие динамического фильтра, которое используется для подписчика при проверке правильности секционирования данных.
web_synchronization_url
Значение по умолчанию URL-адреса в Интернете для веб-синхронизации.
NULL (по умолчанию)
Возвращает список поддерживаемых значений для свойства property.
[ @force\_invalidate\_snapshot = ] force_invalidate_snapshot
Подтверждает, что действие, выполненное этой хранимой процедурой, может сделать недействительным существующий моментальный снимок. Аргумент force_invalidate_snapshot имеет тип bit и значение по умолчанию 0.Значение 0 указывает, что изменение публикации не приведет к недействительности моментального снимка. Если хранимая процедура определяет, что изменение требует создания нового моментального снимка, возникает ошибка и изменение не выполняется.
Значение 1 указывает, что изменение публикации может привести к недействительности моментального снимка. Если существуют подписки, которым требуется новый моментальный снимок, то это значение дает разрешение пометить существующий моментальный снимок как устаревший и сформировать новый.
Сведения о свойствах, которые при их изменении требуют создания нового моментального снимка, см. в разделе «Примечания».
[ @force\_reinit\_subscription = ] force_reinit_subscription
Подтверждает, что действие, выполняемое данной хранимой процедурой, может сделать необходимой повторную инициализацию существующих подписок. Аргумент force_reinit_subscription имеет тип bit и значение по умолчанию 0.Значение 0 указывает, что изменение публикации не требует повторной инициализации подписок. Если хранимая процедура определяет, что изменения потребуют повторной инициализации подписок, возникает ошибка, и изменения не выполняются.
Значение 1 указывает, что изменения в публикации вызывают повторную инициализацию подписок, и дает разрешение произвести повторную инициализацию.
О свойствах, которые при изменении требуют повторной инициализации всех текущих подписок, см. в разделе «Примечания».
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Замечания
Процедура sp_changemergepublication используется в репликации слиянием.
Изменение следующих свойств требует создания нового моментального снимка. Укажите значение 1 для параметра force_invalidate_snapshot.
alt_snapshot_folder
compress_snapshot
dynamic_filters
ftp_address
ftp_login
ftp_password
ftp_port
ftp_subdirectory
post_snapshot_script
publication_compatibility_level (только для 80SP3)
pre_snapshot_script
snapshot_in_defaultfolder
sync_mode
use_partition_groups
Изменение этих свойств потребует повторной инициализации существующих подписок. Укажите значение 1 для параметра force_reinit_subscription.
dynamic_filters
validate_subscriber_info
Чтобы внести список объектов публикации в Active Directory через publish_to_active_directory, объект SQL Server должен уже быть создан в Active Directory.
Пример
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2012]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO
Разрешения
Только члены предопределенной роли сервера sysadmin или db_owner предопределенной роли базы данных могут выполнять процедуру sp_changemergepublication.
См. также
Справочник
sp_addmergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
Хранимые процедуры репликации (Transact-SQL)