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


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, то добавляется подписка по запросу, а агент слияния не добавляется.

    ms187717.note(ru-ru,SQL.90).gifПримечание.
    Анонимные подписки не нуждаются в использовании этой хранимой процедуры.
  • [ @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 предполагается, что подписчик уже имеет схему и исходные данные для опубликованных таблиц. Системные таблицы и данные переносятся всегда.

    ms187717.note(ru-ru,SQL.90).gifПримечание.
    Не рекомендуется задавать значение 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.

    ms187717.note(ru-ru,SQL.90).gifПримечание.
    Этот аргумент является устаревшим и сохраняется только для поддержки обратной совместимости.
  • [ @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.

    ms187717.note(ru-ru,SQL.90).gifВажно!
    Для обеспечения высокой производительности не рекомендуется применять функции к именам столбцов в выражениях параметризованных фильтров строк, таких как 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 г.

Добавления
  • Добавлено примечание о том, что не рекомендуется задавать значение none для параметра @sync_type.