sp_addmergesubscription (Transact-SQL)
Изменения: 15 сентября 2007 г.
Создает подписку на принудительную публикацию слиянием или публикацию слиянием по запросу. Эта хранимая процедура выполняется на издателе в базе данных публикации.
Синтаксические обозначения в Transact-SQL
Синтаксис
sp_addmergesubscription [ @publication= ] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db= ] 'subscriber_db' ]
[ , [ @subscription_type= ] 'subscription_type' ]
[ , [ @subscriber_type= ] 'subscriber_type' ]
[ , [ @subscription_priority= ] subscription_priority ]
[ , [ @sync_type= ] 'sync_type' ]
[ , [ @frequency_type= ] frequency_type ]
[ , [ @frequency_interval= ] frequency_interval ]
[ , [ @frequency_relative_interval= ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor= ] frequency_recurrence_factor ]
[ , [ @frequency_subday= ] frequency_subday ]
[ , [ @frequency_subday_interval= ] frequency_subday_interval ]
[ , [ @active_start_time_of_day= ] active_start_time_of_day ]
[ , [ @active_end_time_of_day= ] active_end_time_of_day ]
[ , [ @active_start_date= ] active_start_date ]
[ , [ @active_end_date= ] active_end_date ]
[ , [ @optional_command_line= ] 'optional_command_line' ]
[ , [ @description= ] 'description' ]
[ , [ @enabled_for_syncmgr= ] 'enabled_for_syncmgr' ]
[ , [ @offloadagent= ] remote_agent_activation]
[ , [ @offloadserver= ] 'remote_agent_server_name' ]
[ , [ @use_interactive_resolver= ] 'use_interactive_resolver' ]
[ , [ @merge_job_name= ] 'merge_job_name' ]
[ , [ @hostname = ] 'hostname'
Аргументы
- [ @publication=] 'publication'
Имя публикации. Аргумент publication имеет тип sysname и не имеет значения по умолчанию. Публикация уже должна существовать.
- [ @subscriber = ] 'subscriber'
Имя подписчика. Аргумент subscriber имеет тип sysname и значение по умолчанию NULL.
- [ @subscriber_db = ] 'subscriber_db'
Имя базы данных подписки. Аргумент subscriber_db имеет тип sysname и значение по умолчанию NULL.
[ @subscription_type=] 'subscription_type'
Тип подписки. Аргумент subscription_type имеет тип nvarchar(15) и значение по умолчанию PUSH. Если указано значение push, то создается принудительная подписка, а на распространителе добавляется агент слияния. Если указано значение pull, то добавляется подписка по запросу, а агент слияния не добавляется.Примечание. Анонимные подписки не нуждаются в использовании этой хранимой процедуры.
[ @subscriber_type=] 'subscriber_type'
Тип подписчика. Аргумент subscriber_type имеет тип nvarchar(15) и может принимать одно из перечисленных далее значений.Значение Описание local (по умолчанию)
Подписчик известен только издателю.
global
Подписчик известен всем серверам.
В SQL Server 2005 локальные подписки классифицируются как клиентские подписки, а глобальные — как серверные подписки. Дополнительные сведения см. в подразделе «Типы подписок» раздела Способы обнаружения и разрешения конфликтов, используемые при репликации слиянием.
- [ @subscription_priority=] subscription_priority
Число, означающее приоритет подписки. Аргумент subscription_priority имеет тип real и значение по умолчанию NULL. Для локальных и анонимных подписок приоритет равен 0,0. Для глобальных подписок приоритет должен быть меньше чем 100,0.
[ @sync_type=] 'sync_type'
Тип синхронизации подписки. Аргумент sync_type имеет тип nvarchar(15) и значение по умолчанию automatic. Может принимать значения automatic или none. При значении automatic схема и исходные данные для опубликованных таблиц переносятся подписчику в первую очередь. При значении none предполагается, что подписчик уже имеет схему и исходные данные для опубликованных таблиц. Системные таблицы и данные переносятся всегда.Примечание. Не рекомендуется задавать значение none. Дополнительные сведения см. в разделе Инициализация подписки на публикацию слиянием без моментального снимка.
[ @frequency_type=] frequency_type
Значение, определяющее работу агента слияния. Аргумент frequency_type имеет тип int и может принимать одно из перечисленных далее значений.Значение Описание 1
Однократно
4
Ежедневно
8
Еженедельно
10
Ежемесячно
20
Ежемесячно, в соответствии с заданным интервалом
40
При запуске агента SQL Server
NULL (по умолчанию)
[ @frequency_interval=] frequency_interval
День или дни, в которые запускается агент слияния. Аргумент frequency_interval имеет тип int и может принимать одно из перечисленных далее значений.Значение Описание 1
Воскресенье
2
Понедельник
3
Вторник
4
Среда
5
Четверг
6
Пятница
7
Суббота
8
Ежедневно
9
По рабочим дням
10
По выходным дням
NULL (по умолчанию)
[ @frequency_relative_interval=] frequency_relative_interval
Планируемая публикация слиянием возникает с некоторой частотой каждый месяц. Аргумент frequency_relative_interval имеет тип int и может принимать одно из перечисленных далее значений.Значение Описание 1
Первый
2
Второй
4
Третий
8
Четвертый
16
Последний
NULL (по умолчанию)
- [ @frequency_recurrence_factor=] frequency_recurrence_factor
Фактор частоты, используемый frequency_type. Аргумент frequency_recurrence_factor имеет тип int и значение по умолчанию NULL.
[ @frequency_subday=] frequency_subday
Единица измерения для frequency_subday_interval. Аргумент frequency_subday имеет тип int и может принимать одно из перечисленных далее значений.Значение Описание 1
Однократно
2
Второй
4
Минута
8
Час
NULL (по умолчанию)
- [ @frequency_subday_interval=] frequency_subday_interval
Частота слияний для аргумента frequency_subday. Аргумент frequency_subday_interval имеет тип int и значение по умолчанию NULL.
- [ @active_start_time_of_day=] active_start_time_of_day
Время первого запуска агента слияния в формате «ЧЧММСС». Аргумент active_start_time_of_day имеет тип int и значение по умолчанию NULL.
- [ @active_end_time_of_day=] active_end_time_of_day
Время плановой остановки агента слияния в формате «ЧЧММСС». Аргумент active_end_time_of_day имеет тип int и значение по умолчанию NULL.
- [ @active_start_date=] active_start_date
Дата первого запуска агента слияния в формате «ГГГГММДД». Аргумент active_start_date имеет тип int и значение по умолчанию NULL.
- [ @active_end_date=] active_end_date
Дата плановой остановки агента слияния в формате «ГГГГММДД». Аргумент active_end_date имеет тип int и значение по умолчанию NULL.
- [ @optional_command_line=] 'optional_command_line'
Необязательная командная строка для запроса команды на исполнение. Аргумент optional_command_line имеет тип nvarchar(4000) и значение по умолчанию NULL. Этот параметр используется для добавления команды, которая захватывает выходной поток и сохраняет его в файл либо для указания файла конфигурации или атрибута.
- [ @description=] 'description'
Краткое описание данной подписки слиянием. Аргумент description имеет тип nvarchar(255) и значение по умолчанию NULL. Значение отображается в мониторе репликации в столбце Понятное имя, который может использоваться для сортировки подписок на контролируемые публикации.
- [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
Указывает, может ли подписка синхронизироваться с помощью диспетчера синхронизации Microsoft Windows. Аргумент enabled_for_syncmgr имеет тип nvarchar(5) и значение по умолчанию FALSE. Если false — подписка не зарегистрирована диспетчером синхронизации. Если true, то подписка зарегистрирована диспетчером синхронизации и может быть синхронизирована без запуска среды Microsoft SQL Server Management Studio.
[ @offloadagent= ] remote_agent_activation
Определяет, что агент может быть активирован удаленно. Аргумент remote_agent_activation имеет тип bit и значение по умолчанию 0.Примечание. Этот аргумент является устаревшим и сохраняется только для поддержки обратной совместимости.
- [ @offloadserver= ] 'remote_agent_server_name'
Задает сетевое имя сервера, используемого для удаленной активации агентов. Аргумент remote_agent_server_name имеет тип sysname и значение по умолчанию NULL.
- [ @use_interactive_resolver= ] 'use_interactive_resolver'
Позволяет интерактивное разрешение конфликтов для всех статей, которые допускают интерактивное разрешение. Аргумент use_interactive_resolver имеет тип nvarchar(5) и значение по умолчанию FALSE.
- [ @merge_job_name= ] 'merge_job_name'
Имя задания агента слияния, которое добавляется к подписке. Аргумент merge_job_name имеет тип sysname и значение по умолчанию NULL. Данный параметр предоставляет имя задания агента слияния для дальнейшего администрирования.
[ @hostname= ] 'hostname'
Перекрывает значение, возвращаемое HOST_NAME, если эта функция используется в предложении WHERE параметризованного фильтра. Аргумент Hostname имеет тип sysname и значение по умолчанию NULL.Важно! Для обеспечения высокой производительности не рекомендуется применять функции к именам столбцов в выражениях параметризованных фильтров строк, таких как LEFT([MyColumn]) = SUSER_SNAME()
. При использовании HOST_NAME в выражении фильтра и переопределении значения HOST_NAME может потребоваться преобразование типов данных с помощью CONVERT. Дополнительные сведения см. в подразделе «Переопределение значения HOST_NAME()» раздела Параметризованные фильтры строк.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Замечания
Процедура sp_addmergesubscription используется при репликации слиянием.
Если процедура sp_addmergesubscription выполняется членами фиксированной серверной роли sysadmin для создания принудительной подписки, задание для агента слияния неявно создается и запускается под учетной записью агента SQL Server. Рекомендуется выполнять процедуру sp_addmergepushsubscription_agent и указывать учетные данные @job_login и @job_password другой учетной записи Windows, специально выделенной для конкретного агента. Дополнительные сведения см. в разделе Модель безопасности агента репликации.
Разрешения
Только члены фиксированной серверной роли sysadmin или фиксированной роли базы данных db_owner могут выполнить sp_addmergesubscription.
Пример
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables
-- on the command line and in SQL Server Management Studio, see the
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';
SET @hostname = N'adventure-works\david8'
-- Add a push subscription to a merge publication.
USE [AdventureWorks]
EXEC sp_addmergesubscription
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@subscription_type = N'push',
@hostname = @hostname;
--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@job_login = $(Login),
@job_password = $(Password);
GO
См. также
Справочник
sp_changemergesubscription (Transact-SQL)
sp_dropmergesubscription (Transact-SQL)
sp_helpmergesubscription (Transact-SQL)
Другие ресурсы
Как создавать принудительные подписки (программирование репликации на языке Transact-SQL)
Как создавать подписки по запросу (программирование репликации на языке Transact-SQL)
Интерактивное разрешение конфликтов
Подписка на публикации
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
15 сентября 2007 г. |
|