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


sp_addmergepublication (Transact-SQL)

Изменения: 12 декабря 2006 г.

Создает новую публикацию слиянием. Эта хранимая процедура выполняется на издателе в публикуемой базе данных.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

sp_addmergepublication [ @publication = ] 'publication' 
    [ , [ @description = ] 'description' 
    [ , [ @retention = ] retention ] 
    [ , [ @sync_mode = ] 'sync_mode' ] 
    [ , [ @allow_push = ] 'allow_push' ] 
    [ , [ @allow_pull = ] 'allow_pull' ] 
    [ , [ @allow_anonymous = ] 'allow_anonymous' ] 
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ] 
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ] 
        [ , [ @dynamic_filters = ] 'dynamic_filters' ] 
    [ , [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder' ] 
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ] 
        [ , [ @pre_snapshot_script = ] 'pre_snapshot_script' ] 
    [ , [ @post_snapshot_script = ] 'post_snapshot_script' ] 
    [ , [ @compress_snapshot = ] 'compress_snapshot' ] 
    [ , [ @ftp_address = ] 'ftp_address' ] 
    [ , [ @ftp_port = ] ftp_port ] 
    [ , [ @ftp_subdirectory = ] 'ftp_subdirectory' ] 
    [ , [ @ftp_login = ] 'ftp_login' ] 
    [ , [ @ftp_password = ] 'ftp_password' ] 
    [ , [ @conflict_retention = ] conflict_retention ] 
    [ , [ @keep_partition_changes = ] 'keep_partition_changes' ] 
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ] 
    [ , [ @allow_synctoalternate = ] 'allow_synctoalternate' ] 
    [ , [ @validate_subscriber_info = ] 'validate_subscriber_info' ] 
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ] 
    [ , [ @max_concurrent_merge = ] maximum_concurrent_merge ] 
    [ , [ @max_concurrent_dynamic_snapshots = ] max_concurrent_dynamic_snapshots ]
    [ , [ @use_partition_groups = ] 'use_partition_groups' ]
    [ , [ @publication_compatibility_level = ] 'backward_comp_level' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @allow_subscriber_initiated_snapshot = ] 'allow_subscriber_initiated_snapshot' ] 
    [ , [ @allow_web_synchronization = ] 'allow_web_synchronization' ] 
    [ , [ @web_synchronization_url = ] 'web_synchronization_url' ]
    [ , [ @allow_partition_realignment = ] 'allow_partition_realignment' ]
    [ , [ @retention_period_unit = ] 'retention_period_unit' ]
    [ , [ @generation_leveling_threshold = ] generation_leveling_threshold ]
    [ , [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy ]
    [ , [ @conflict_logging = ] 'conflict_logging' ]

Аргументы

  • [ @publication=] 'publication'
    Имя создаваемой публикации слиянием. Аргумент publication имеет тип sysname, не имеет значения по умолчанию и не должен являться ключевым словом ALL. Имя публикации в пределах базы данных должно быть уникальным.
  • [ @description=] 'description'
    Описание публикации. Аргумент description имеет тип nvarchar(255) и значение по умолчанию NULL.
  • [ @retention=] retention
    Срок хранения (в единицах срока хранения), в течение которого должны храниться изменения в данной публикации. Аргумент retention имеет тип int и значение по умолчанию 14 единиц. Единицы срока хранения определяются величиной retention_period_unit. Если подписка не синхронизована в пределах срока хранения, а ожидающие применения изменения, которые могли бы быть получены этой подпиской, удалены операцией очистки на распространителе, срок подписки истекает, и она должна быть вновь инициализирована. Максимально допустимым сроком хранения является количество дней от 31 декабря 9999 года до текущей даты.

    ms176103.note(ru-ru,SQL.90).gifПримечание.
    Срок хранения для публикации слиянием предусматривает наличие 24-часового льготного срока для согласования работы подписчиков в разных часовых поясах. Например, если установить срок хранения продолжительностью в один день, то действительный срок хранения будет равен 48 часам.
  • [ @sync_mode=] 'sync_mode'
    Режим начальной синхронизации подписчиков на публикации. Аргумент sync_mode имеет тип nvarchar(10) и может иметь одно из следующих значений.

    Значение Описание

    native (по умолчанию)

    Обеспечивает вывод программы массового копирования всех таблиц в ее собственном режиме.

    character

    Обеспечивает вывод программы массового копирования всех таблиц в символьном режиме. Требуется для поддержки подписчиков SQL Server 2005 Compact Edition и подписчиков, отличных от SQL Server.

  • [ @allow_push=] 'allow_push'
    Указывается, могут ли для этой публикации создаваться принудительные подписки. Аргумент allow_push имеет тип nvarchar(5) и значение по умолчанию TRUE, разрешающее принудительные подписки на публикацию.
  • [ @allow_pull=] 'allow_pull'
    Указывается, могут ли для этой публикации создаваться подписки по запросу. Аргумент allow_pull имеет тип nvarchar(5) и значение по умолчанию TRUE, разрешающее подписки по запросу на публикацию. Для поддержки подписчиков SQL Server 2005 Compact Edition необходимо указать значение true.
  • [ @allow_anonymous=] 'allow_anonymous'
    Указывается, могут ли для этой публикации создаваться анонимные подписки. Аргумент allow_anonymous имеет тип nvarchar(5) и значение по умолчанию TRUE, разрешающее анонимные подписки на публикацию. Для поддержки подписчиков SQL Server 2005 Compact Edition необходимо указать значение true*.*
  • [ @enabled_for_internet=] 'enabled_for_internet'
    Указывает, включены ли публикации в Интернете, и определяет, может ли протокол FTP использоваться для пересылки подписчикам файлов моментальных снимков. Аргумент enabled_for_internet имеет тип nvarchar(5) и значение по умолчанию FALSE. При задании значения true файлы синхронизации для публикации помещаются в каталог «C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.x\Repldata\Ftp». Пользователь должен создать каталог Ftp. При задании значения false для публикации доступ по Интернету не включен.
  • [ @centralized_conflicts = ] 'centralized_conflicts'
    Этот аргумент является устаревшим и поддерживается только для обратной совместимости. Для указания места хранения конфликтующих записей используйте аргумент conflict_logging.
  • [ @dynamic_filters =] 'dynamic_filters'
    Допускается использование параметризованных фильтров строк для публикаций слиянием. Аргумент dynamic_filters имеет тип nvarchar(5) и значение по умолчанию FALSE.

    ms176103.note(ru-ru,SQL.90).gifПримечание.
    Вместо задания этого параметра следует позволить SQL Server автоматически определять, используются ли параметризованные фильтры строк. При задании значения true для аргумента dynamic_filters для статьи должен быть задан параметризованный фильтр строк. Дополнительные сведения см. в разделе How to: Define and Modify a Parameterized Row Filter for a Merge Article (Replication Transact-SQL Programming).
  • [ @snapshot_in_defaultfolder = ] 'snapshot_in_default_folder'
    Указывается, хранятся ли файлы моментальных снимков в папке по умолчанию. Аргумент snapshot_in_default_folder имеет тип nvarchar(5) и значение по умолчанию TRUE. При задании true файлы моментальных снимков находятся в папке по умолчанию. При задании значения false файлы моментальных снимков сохраняются в другом месте, заданном аргументом alternate_snapshot_folder. Альтернативное размещение может находиться на другом сервере, сетевом диске или съемном носителе (например, на CD-ROM или на съемных дисках). Файлы моментальных снимков могут также сохраняться с помощью протокола передачи файлов на FTP-узле, чтобы подписчик мог извлечь эти файлы позже. Заметьте, что этот аргумент может иметь значение true, и в то же время может быть указано место сохранения alt_snapshot_folder. Это сочетание указывает на то, что файлы моментальных снимков сохраняются одновременно и в месте по умолчанию, и в альтернативном месте.
  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    Указывается место альтернативной папки для моментального снимка. Аргумент alternate_snapshot_folder имеет тип nvarchar(255) и значение по умолчанию NULL.
  • [ @pre_snapshot_script = ] 'pre_snapshot_script'
    Задается указатель на местонахождение файла .sql. Аргумент pre_snapshot_script имеет тип nvarchar(255) и значение по умолчанию NULL. При применении моментального снимка на подписчике агент слияния выполняет сценарий до моментального снимка перед выполнением сценариев объектов репликации. Сценарий выполняется в контексте безопасности, используемом агентом слияния при подключении к базе данных подписки. Сценарии до моментального снимка не выполняются на подписчиках SQL Server 2005 Compact Edition*.*
  • [ @post_snapshot_script = ] 'post_snapshot_script'
    Задается указатель на местонахождение файла .sql. Аргумент post_snapshot_script имеет тип nvarchar(255) и значение по умолчанию NULL. Агент слияния выполняет сценарий после моментального снимка после того, как во время начальной синхронизации будут применены сценарии и данные всех других объектов репликации. Сценарий выполняется в контексте безопасности, используемом агентом слияния при подключении к базе данных подписки. Сценарии после моментального снимка не выполняются на подписчиках SQL Server 2005 Compact Edition*.*
  • [ @compress_snapshot = ] 'compress_snapshot'
    Указывается, сжимается ли моментальный снимок, записываемый в @alt_snapshot_folder, в формате Microsoft CAB. Аргумент compress_snapshot имеет тип nvarchar(5) и значение по умолчанию FALSE. Задание значения false указывает на то, что моментальный снимок не сжимается; значение true указывает на то, что моментальный снимок сжимается. Файлы моментальных снимков, превышающие 2 ГБ, не могут быть сжаты. Сжатые файлы моментальных снимков распаковываются в том месте, в котором выполняется агент слияния; подписки по запросу обычно используются со сжатыми моментальными снимками, так что соответствующие файлы распаковываются на подписчике. Моментальный снимок в папке по умолчанию сжать нельзя. Для поддержки подписчиков SQL Server 2005 Compact Edition необходимо указать значение false*.*
  • [ @ftp_address=] 'ftp_address'
    Сетевой адрес службы FTP для распространителя. Аргумент ftp_address имеет тип sysname и значение по умолчанию NULL. Указывается расположение файлов моментальных снимков публикаций, откуда их выбирает агент слияния подписчика. Так как это свойство сохраняется для каждой публикации, все публикации могут иметь разные значения аргумента ftp_address. Публикация должна поддерживать распространение моментальных снимков с помощью протокола FTP.
  • [ @ftp_port=] ftp_port
    Номер порта службы FTP для распространителя. Аргумент ftp_port имеет тип int и значение по умолчанию 21. Указывается расположение файлов моментальных снимков публикаций, откуда их выбирает агент слияния подписчика. Так как это свойство сохраняется для каждой публикации, все публикации могут иметь свои собственные значения ftp_port.
  • [ @ftp_subdirectory = ] 'ftp_subdirectory'
    Указывается, где будут находиться файлы моментальных снимков публикаций, откуда их выбирает агент слияния подписчика, если публикация поддерживает распространение моментальных снимков при помощи FTP. Аргумент ftp_subdirectory имеет тип nvarchar(255) и значение по умолчанию NULL. Так как это свойство сохраняется для каждой публикации, каждая публикация может иметь собственное значение подкаталога ftp_subdirectory; можно отказаться от использования подкаталога, указав значение NULL.

    При предварительном формировании моментальных снимков для публикаций при помощи параметризованных фильтров необходимо, чтобы моментальные снимки данных для каждой секции подписчика находились в своих папках. Структура каталога для предварительно формируемых при помощи FTP моментальных снимков должна иметь следующий вид:

    alternate_snapshot_folder\ftp\publisher_publicationDB_publication\partitionID.

    ms176103.note(ru-ru,SQL.90).gifПримечание.
    Указанные выше значения, выделенные курсивом, зависят от характеристик публикации и секции подписчика.
  • [ @ftp_login=] 'ftp_login'
    Имя пользователя, используемое для подключения к службе FTP. Аргумент ftp_login имеет тип sysname и значение по умолчанию 'anonymous'.
  • [ @ftp_password=] 'ftp_password'
    Пароль, используемый при подключении к службе FTP. Аргумент ftp_password имеет тип sysname и значение по умолчанию NULL.

    ms176103.security(ru-ru,SQL.90).gifПримечание безопасности.
    Не используйте пустые пароли. Выбирайте надежные пароли.
  • [ @conflict_retention = ] conflict_retention
    Указывается срок хранения (в днях), в течение которого сохраняются данные конфликта. Аргумент conflict_retention имеет тип int и значение по умолчанию 14 дней, по истечении которых строка данных конфликта удаляется из таблицы данных конфликтов.
  • [ @keep_partition_changes = ] 'keep_partition_changes'
    Указывается, нужно ли включать оптимизацию изменений секций, если предварительно вычисляемые секции не могут быть использованы. Аргумент keep_partition_changes имеет тип nvarchar(5) и значение по умолчанию TRUE. Задание значения false означает, что изменения секций не оптимизируются, и если предварительно вычисляемые секции не используются, секции, посылаемые всем подписчикам, проверяются при изменении данных в секции. Задание значения true означает, что изменения секций оптимизируются; при этом оптимизация проводится только для подписчиков, имеющих строки в изменяемых секциях. При использовании предварительно вычисленных секций установите аргумент use_partition_groups в значение true и аргумент keep_partition_changes в значение false. Дополнительные сведения см. в разделе Оптимизация производительности параметризованного фильтра с помощью предварительно вычисляемых секций.

    ms176103.note(ru-ru,SQL.90).gifПримечание.
    Если в качестве значения параметра keep_partition_changes указано true, то в качестве значения параметра агента моментальных снимков -MaxNetworkOptimization следует указать 1. Дополнительные сведения об этом параметре см. в разделе Replication Snapshot Agent. Сведения о том, как задаются параметры агентов, см. в разделе Управление агентами репликации.
  • [ @allow_subscription_copy= ] 'allow_subscription_copy'
    Включение и отключение возможности копирования баз данных подписок, подписывающихся на эту публикацию. Аргумент allow_subscription_copy имеет тип nvarchar(5) и значение по умолчанию FALSE. Размер копируемой базы данных подписки должен быть меньше 2 ГБ.
  • [ @allow_synctoalternate = ] 'allow_synctoalternate'
    Допускается синхронизация альтернативного участника синхронизации с этим издателем. Аргумент allow_synctoalternate имеет тип nvarchar(5) и значение по умолчанию FALSE. Альтернативные участники синхронизации не поддерживаются для подписчиков SQL Server 2005 Compact Edition.
  • [ @validate_subscriber_info = ] 'validate_subscriber_info'
    Перечисляются функции, используемые для определения секции подписчика в публикуемых данных при использовании параметризованных фильтров строк. Аргумент validate_subscriber_info имеет тип nvarchar(500) и значение по умолчанию NULL. Эти данные используются агентом слияния для проверки секций подписчиков. Например, если SUSER_SNAME (Transact-SQL) применяется в параметризованном фильтре строк, должен использоваться параметр @validate_subscriber_info=N'SUSER_SNAME()'.

    ms176103.note(ru-ru,SQL.90).gifПримечание.
    Вместо задания этого аргумента позвольте SQL Server автоматически определять критерий фильтрации.
  • [ @add_to_active_directory = ] 'add_to_active_directory'
    Этот аргумент является устаревшим и поддерживается только для обратной совместимости. Больше нельзя добавлять данные публикации в службу Microsoft Active Directory.
  • [ @max_concurrent_merge = ] maximum_concurrent_merge
    Максимальное число одновременно выполняющихся процессов слияния. Аргумент maximum_concurrent_merge имеет тип int и значение по умолчанию 0. Значение 0 для этого свойства означает, что на количество процессов слияния, одновременно выполняющихся в любой момент времени, нет никаких ограничений. Это свойство устанавливает предельное значение числа процессов слияния, которые могут одновременно выполняться на публикации слиянием. Если в расписании задано одновременное выполнение большего числа процессов слияния, чем указанное значение, лишние задания будут поставлены в очередь, где они будут ожидать завершения одного из одновременно выполняющихся процессов слияния.
  • [ @max_concurrent_dynamic_snapshots =] max_concurrent_dynamic_snapshots
    Максимальное количество сеансов агентов моментальных снимков, которые могут одновременно выполняться для формирования моментальных снимков отфильтрованных данных для секций подписчиков. Аргумент maximum_concurrent_dynamic_snapshots имеет тип int и значение по умолчанию 0. При задании 0 на количество сеансов моментальных снимков какие-либо ограничения отсутствуют. Если на одно и то же время назначено больше процессов моментальных снимков, чем позволяет указанное значение, лишние задачи будут помещены в очередь до завершения создания текущего моментального снимка.
  • [ @use_partition_groups= ] 'use_partition_groups'
    Указывается, что для оптимизации процесса синхронизации должны использоваться предварительно вычисляемые секции. Аргумент use_partition_groups имеет тип nvarchar(5) и может принимать одно из следующих значений:

    Значение Описание

    true

    Публикация использует предварительно вычисляемые секции.

    false

    Публикация не использует предварительно вычисляемые секции.

    NULL (по умолчанию)

    Стратегию секционирования выбирает система.

    По умолчанию используются предварительно вычисляемые секции. Чтобы избежать использования предварительно вычисляемых секций, аргумент use_partition_groups должен быть установлен в значение false. При задании NULL система решает, могут ли использоваться предварительно вычисляемые секции. Если предварительно вычисляемые секции не могут использоваться, это значение приобретает значение false без формирования каких-либо сообщений об ошибке. В таких случаях для обеспечения определенной оптимизации аргумент keep_partition_changes может быть установлен в true. Дополнительные сведения см. в разделах Параметризованные фильтры строк и Оптимизация производительности параметризованного фильтра с помощью предварительно вычисляемых секций.

  • [ @publication_compatibility_level= ] backward_comp_level
    Обозначается обратная совместимость публикации. Аргумент backward_comp_level имеет тип nvarchar(6) и может принимать одно из следующих значений:

    Значение Версия

    70RTM

    Microsoft SQL Server 7.0

    70SP1

    SQL Server 7.0 с пакетом обновления 1 (SP1).

    70SP2

    SQL Server 7.0 с пакетом обновления 2 (SP2).

    70SP3

    SQL Server 7.0 с пакетом обновления 3 (SP3).

    70SP4

    SQL Server 7.0 с пакетом обновления 4 (SP4).

    80RTM

    Microsoft SQL Server 2000

    80SP1

    SQL Server 2000 с пакетом обновления 1 (SP1).

    80SP3 (по умолчанию)

    SQL Server 2000 с пакетом обновления 3 (SP3).

    90RTM

    Microsoft SQL Server 2005

  • [ @replicate_ddl= ] replicate_ddl
    Указывается, поддерживается ли для публикации репликация схемы. Аргумент replicate_ddl имеет тип int и значение по умолчанию 1. Значение 1 указывает на то, что инструкции языка определения данных (DDL), выполняемые на издателе, реплицируются, а 0 указывает на то, что инструкции DDL не реплицируются. Дополнительные сведения см. в разделе Внесение изменений схем в базы данных публикаций.
  • [ @allow_subscriber_initiated_snapshot= ] 'allow_subscriber_initiated_snapshot'
    Указывается, могут ли подписчики на эту публикацию инициировать процесс моментального снимка для формирования отфильтрованного моментального снимка для своих секций данных. Аргумент allow_subscriber_initiated_snapshot имеет тип nvarchar(5) и значение по умолчанию FALSE. Значение true обозначает то, что подписчики могут инициировать процесс моментального снимка.
  • [ @allow_web_synchronization = ] 'allow_web_synchronization'
    Задается, включена ли публикация для веб-синхронизации. Аргумент allow_web_synchronization имеет тип nvarchar(5) и значение по умолчанию FALSE. Значение true указывает на то, что подписки на публикацию могут синхронизироваться по HTTPS. Дополнительные сведения см. в разделе Веб-синхронизация для репликации слиянием. Для поддержки подписчиков SQL Server 2005 Compact Edition необходимо указать значение true*.*
  • [ @web_synchronization_url= ] 'web_synchronization_url'
    Указывает значение по умолчанию URL-адреса в Интернете, используемого для веб-синхронизации. Аргумент web_synchronization_url имеет тип nvarchar(500) и значение по умолчанию NULL. Определяет URL-адрес по умолчанию, если этот адрес не задан явно при выполнении sp_addmergepullsubscription_agent.
  • [ @allow_partition_realignment = ] 'allow_partition_realignment']
    Определяет, посылаются ли удаления подписчику, если в результате изменения строки на издателе изменяется его секция. Аргумент allow_partition_realignment имеет тип nvarchar(5) и значение по умолчанию TRUE. Если значение равно true, производится пересылка удалений подписчику для обозначения результатов изменения секции при удалении данных, которые уже не являются частью секции подписчика. Если значение равно false, данные из старой секции остаются на подписчике, если изменения этих данных на издателе не будут реплицироваться на этот подписчик, но изменения, выполненные на подписчике, будут реплицироваться на издатель. Установка аргумента allow_partition_realignment в false используется для сохранения данных в подписке из старой секции, если данные должны быть доступны для получения статистической информации.

    ms176103.note(ru-ru,SQL.90).gifПримечание.
    Данные, сохраняющиеся на подписчике в результате установки аргумента allow_partition_realignment в false, должны рассматриваться так, как если бы они были доступны только для чтения; однако система репликации принудительно это не устанавливает.
  • [ @retention_period_unit= ] 'retention_period_unit'
    Задаются единицы срока хранения для retention. Аргумент retention_period_unit имеет тип nvarchar(10) и может иметь одно из следующих значений:

    Значение Версия

    day (по умолчанию)

    Срок хранения указан в днях.

    week

    Срок хранения указан в неделях.

    month

    Срок хранения указан в месяцах.

    year

    Срок хранения указан в годах.

  • [ @generation_leveling_threshold = ] generation_leveling_threshold
    Задает число изменений, которые содержатся в поколении. Поколение — это набор изменений, переданных издателю или подписчику. Параметр generation_leveling_threshold имеет тип int и значение по умолчанию 1000. Дополнительные сведения см. в разделе Как репликация слиянием отслеживает и перечисляет изменения.
  • [ @automatic_reinitialization_policy = ] automatic_reinitialization_policy
    Указывает, передаются ли изменения с подписчика перед автоматической повторной инициализацией, необходимой при изменении в публикации, при задании значения 1 для аргумента @force_reinit_subscription. Аргумент automatic_reinitialization_policy имеет тип bit и значение по умолчанию 0. Значение 1 означает, что перед автоматической повторной инициализацией изменения с подписчика передаются.

    ms176103.note(ru-ru,SQL.90).gifВажно!
    Если добавить, удалить или изменить параметризованный фильтр, то ожидающие обработки изменения на подписчике нельзя будет передать на издатель во время повторной инициализации. Если нужно передать изменения, ожидающие обработки, то перед изменением фильтра необходимо синхронизировать все подписки.
  • [ @conflict_logging = ] 'conflict_logging'
    Указывается, где сохраняются конфликтующие записи. Аргумент conflict_logging имеет тип nvarchar(15) и может иметь одно из следующих значений:

    Значение Описание

    publisher

    Конфликтующие записи сохраняются на издателе.

    subscriber

    Конфликтующие записи хранятся на подписчике, вызвавшем конфликт. Не поддерживается подписчиками SQL Server 2005 Compact Edition.

    both

    Конфликтующие записи сохраняются одновременно и на издателе, и на подписчике.

    NULL (по умолчанию)

    Репликация автоматически устанавливает аргумент conflict_logging в значение both, если аргумент backward_comp_level имеет значение 90RTM, и в значение publisher — во всех остальных случаях.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Процедура sp_addmergepublication используется в репликации слиянием.

Для получения списка объектов публикации в Active Directory при помощи аргумента @add_to_active_directory объект сервера SQL Server уже должен быть создан в Active Directory.

Если имеется несколько публикаций, публикующих один и тот же объект базы данных, репликацию инструкций ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION и ALTER TRIGGER DDL выполняют только те публикации, в которых аргумент replicate_ddl имеет значение 1. Однако инструкция ALTER TABLE DROP COLUMN DDL будет реплицирована всеми публикациями, публикующими удаленный столбец.

Для подписчиков SQL Server 2005 Compact Edition значение alternate_snapshot_folder используется, только если параметр snapshot_in_default_folder имеет значение false.

Когда для публикации включена репликация DDL (replicate_ddl**=1**), для внесения в публикацию нереплицируемых изменений DDL необходимо вначале выполнить процедуру sp_changemergepublication, чтобы установить параметр replicate_ddl в значение 0. После выполнения нереплицируемых инструкций DDL можно снова запустить процедуру sp_changemergepublication для повторного включения репликации DDL.

Разрешения

Только члены фиксированной серверной роли sysadmin или фиксированной роли базы данных db_owner могут выполнять процедуру sp_addmergepublication.

Пример

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. 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".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @login = $(Login);
SET @password = $(Password);

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
  @dbname=@publicationDB, 
  @optname=N'merge publish',
  @value = N'true' 

-- Create a new merge publication, explicitly setting the defaults. 
USE [AdventureWorks]
EXEC sp_addmergepublication 
-- These parameters are optional.
  @publication = @publication,
  -- optional parameters 
  @description = N'Merge publication of AdventureWorks.',
  @publication_compatibility_level  = N'90RTM';

-- Create a new snapshot job for the publication.
EXEC sp_addpublication_snapshot 
  @publication = @publication, 
  @job_login = @login, 
  @job_password = @password;
GO

См. также

Справочник

sp_changemergepublication (Transact-SQL)
sp_dropmergepublication (Transact-SQL)
sp_helpmergepublication (Transact-SQL)
Хранимые процедуры репликации (Transact-SQL)

Другие ресурсы

How to: Create a Publication (Replication Transact-SQL Programming)
Публикация данных и объектов базы данных

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

12 декабря 2006 г.

Новое содержимое
  • Добавлены сведения об использовании параметра агента моментальных снимков -MaxNetworkOptimization.
  • Добавлены сведения о параметре generation_leveling_threshold.