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


sp_addpublication (Transact-SQL)

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

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

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

Синтаксис

sp_addpublication [ @publication = ] 'publication'
    [ , [ @taskid = ] tasked ]
    [ , [ @restricted = ] 'restricted' ]
    [ , [ @sync_method = ] 'sync_method' ]
    [ , [ @repl_freq = ] 'repl_freq' ]
    [ , [ @description = ] 'description' ]
    [ , [ @status = ] 'status' ]
    [ , [ @independent_agent = ] 'independent_agent' ]
    [ , [ @immediate_sync = ] 'immediate_sync' ]
    [ , [ @enabled_for_internet = ] 'enabled_for_internet' ]
    [ , [ @allow_push = ] 'allow_push'
    [ , [ @allow_pull = ] 'allow_pull' ]
    [ , [ @allow_anonymous = ] 'allow_anonymous' ]
    [ , [ @allow_sync_tran = ] 'allow_sync_tran' ]
    [ , [ @autogen_sync_procs = ] 'autogen_sync_procs' ]
    [ , [ @retention = ] retention ]
    [ , [ @allow_queued_tran= ] 'allow_queued_updating' ]
        [ , [ @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' ]
    [ , [ @allow_dts = ] 'allow_dts' ]
    [ , [ @allow_subscription_copy = ] 'allow_subscription_copy' ]
    [ , [ @conflict_policy = ] 'conflict_policy' ]
    [ , [ @centralized_conflicts = ] 'centralized_conflicts' ] 
    [ , [ @conflict_retention = ] conflict_retention ]
    [ , [ @queue_type = ] 'queue_type' ]
    [ , [ @add_to_active_directory = ] 'add_to_active_directory' ]
    [ , [ @logreader_job_name = ] 'logreader_agent_name' ]
    [ , [ @qreader_job_name = ] 'queue_reader_agent_name' ]
    [ , [ @publisher = ] 'publisher' ] 
    [ , [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup' ]
    [ , [ @replicate_ddl = ] replicate_ddl ]
    [ , [ @enabled_for_p2p = ] 'enabled_for_p2p' ]
    [ , [ @publish_local_changes_only = ] 'publish_local_changes_only' ]
    [ , [ @enabled_for_het_sub = ] 'enabled_for_het_sub' ]

Аргументы

  • [ @publication = ] 'publication'
    Имя создаваемой публикации. Аргумент publication имеет тип sysname и не имеет значения по умолчанию. В базе данных это имя должно быть уникальным.
  • [ @taskid=] taskid
    Поддерживается только для обеспечения обратной совместимости. Используйте хранимую процедуру sp_addpublication_snapshot (Transact-SQL).
  • [ @restricted=] 'restricted'
    Поддерживается только для обеспечения обратной совместимости. Используйте параметр default_access.
  • [ @sync_method=] 'sync_method**'**
    Режим синхронизации. Аргумент sync_method имеет тип nvarchar(13) и может иметь одно из следующих значений.

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

    native

    Производит выходные данные программы массового копирования всех таблиц. Не поддерживается для издателей Oracle.

    character

    Производит выходные данные программы массового копирования всех таблиц в символьном режиме. Для издателей Oracle значение character допустимо только в отношении репликации моментальных снимков.

    concurrent

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

    concurrent_c

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

    database snapshot

    Производит выходные данные программы массового копирования всех таблиц в моментальном снимке базы данных. Для выполнения этого действия требуется наличие выпуска SQL Server 2005 Enterprise Edition с пакетом обновления 2 или более поздней версии.

    database snapshot character

    Производит выходные данные программы массового копирования в символьном режиме всех таблиц в моментальном снимке базы данных. Для выполнения этого действия требуется наличие выпуска SQL Server 2005 Enterprise Edition с пакетом обновления 2 или более поздней версии.

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

    По умолчанию для издателей Microsoft SQL Server используется значение native. Для издателей, не являющихся SQL Server, используется значение по умолчанию character, если аргумент repl_freq имеет значение Snapshot, а concurrent_c — во всех остальных случаях.

  • [ @repl_freq=] 'repl_freq'
    Тип частоты репликации. Аргумент repl_freq имеет тип nvarchar(10) и может иметь одно из следующих значений.

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

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

    Издатель предоставляет выходные данные всех транзакций, записываемых в журнал. Для издателей, не являющихся SQL Server, требуется присвоить аргументу sync_method значение concurrent_c.

    snapshot

    Издатель предоставляет только запланированные события синхронизации. Для издателей, не являющихся SQL Server, требуется присвоить аргументу sync_method значение character.

  • [ @description=] 'description'
    Необязательное описание публикации. Аргумент description имеет тип nvarchar(255) и значение по умолчанию NULL.
  • [ @status=] 'status'
    Указывает, доступна ли публикация. Аргумент status имеет тип nvarchar(8) и может иметь одно из следующих значений.

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

    active

    Публикация доступна подписчикам немедленно.

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

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

    Не поддерживается для издателей Oracle.

  • [ @independent_agent=] 'independent_agent'
    Указывает, имеется ли для этой публикации изолированный агент распространителя. Аргумент independent_agent имеет тип nvarchar(5) и значение по умолчанию FALSE. Если значение равно true, то существует изолированный агент распространителя для этой публикации. Если значение равно false, публикация использует общий агент распространителя, и каждой паре баз данных издателя и подписчика соответствует один общий агент.
  • [ @immediate_sync=] 'immediate_synchronization'
    Указывает, создаются ли для этой публикации файлы синхронизации при каждом запуске агента моментальных снимков. Аргумент immediate_synchronization имеет тип nvarchar(5) и значение по умолчанию FALSE. Если значение равно true, файлы синхронизации создаются или создаются повторно при каждом запуске агента моментальных снимков. Подписчики могут получить файлы синхронизации немедленно, если агент моментальных снимков завершил работу до создания подписки. Новые подписки получают самые свежие файлы синхронизации, сформированные последним запуском агента моментальных снимков. Аргумент independent_agent должен иметь значение true, чтобы аргумент immediate_synchronization имел значение true. Если значение равно false, файлы синхронизации создаются, только если имеются новые подписки. При постепенном добавлении новой статьи к существующей публикации необходимо вызывать процедуру sp_addsubscription для каждой подписки. Подписчики не могут получать файлы синхронизации после подписки, пока агенты моментальных снимков не будут запущены и не завершат работу.
  • [ @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.
  • [ @allow_push=] 'allow_push'
    Указывает, можно ли создать принудительные подписки для конкретной публикации. Аргумент allow_push имеет тип nvarchar(5) и значение по умолчанию TRUE, разрешающее принудительные подписки.
  • [ @allow_pull=] 'allow_pull'
    Указывает, можно ли создать подписки по запросу для конкретной публикации. Аргумент allow_pull имеет тип nvarchar(5) и значение по умолчанию FALSE. Если значение равно false, подписки по запросу не разрешаются.
  • [ @allow_anonymous=] 'allow_anonymous'
    Указывает, можно ли создать анонимные подписки для конкретной публикации. Аргумент allow_anonymous имеет тип nvarchar(5) и значение по умолчанию FALSE. Если значение равно true, аргумент immediate_synchronization также должен быть установлен в значение true. Если значение равно false, анонимные подписки по запросу не разрешаются.
  • [ @allow_sync_tran=] 'allow_sync_tran'
    Указывает, разрешаются ли в публикации немедленно обновляемые подписки. Аргумент allow_sync_tran имеет тип nvarchar(5) и значение по умолчанию FALSE. Значение true не поддерживается для издателей Oracle.
  • [ @autogen_sync_procs=] 'autogen_sync_procs'
    Указывает, формируется ли синхронизирующая хранимая процедура для обновления подписок у издателя. Аргумент autogen_sync_procs имеет тип nvarchar(5) и может иметь одно из следующих значений:

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

    true

    Устанавливается автоматически, если включена обновляемая подписка.

    false

    Устанавливается автоматически для издателей Oracle или если обновляемая подписка выключена.

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

    Автоматически присваивается значение true, если включена обновляемая подписка, или false в противном случае.

    ms188738.note(ru-ru,SQL.90).gifПримечание.
    Пользовательское значение для аргумента autogen_sync_procs будет переопределено в зависимости от значений, указанных для аргументов allow_queued_tran и allow_sync_tran.
  • [ @retention=] retention
    Период действия подписки в часах. Аргумент retention имеет тип int и значение по умолчанию 336 часов. Если подписка не активна в течение указанного периода, ее срок действия истекает, и она удаляется. Это значение может превышать максимальный срок хранения базы данных распространителя на издателе. Если значение равно 0, срок действия известных подписок на публикацию никогда не истечет, и они будут удаляться агентом очистки просроченных подписок.
  • [ @allow_queued_tran= ] 'allow_queued_updating'
    Включает или отключает очередь изменений на подписчике, пока эти изменения не применятся на издателе. Аргумент allow_queued_updating имеет тип nvarchar(5) и значение по умолчанию FALSE. Если значение равно false, изменения на подписчике не ставятся в очередь. Значение true не поддерживается для издателей Oracle.
  • [ @snapshot_in_defaultfolder= ] 'snapshot_in_default_folder'
    Указывает, хранятся ли файлы моментальных снимков в папке по умолчанию. Аргумент snapshot_in_default_folder имеет тип nvarchar(5) и значение по умолчанию TRUE. Если значение равно true, файлы моментальных снимков можно найти в папке по умолчанию. Если значение равно false, файлы моментальных снимков хранятся в другом расположении, заданном аргументом alternate_snapshot_folder. Другим местом может быть другой сервер, сетевой диск или съемный носитель (такой как компакт-диск или съемные диски). Файлы моментальных снимков можно также хранить на 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. Если моментальный снимок применяется на подписчике, то агент распространителя запускает предварительный сценарий моментального снимка до выполнения сценариев реплицируемых объектов. Сценарий выполняется в контексте безопасности, использованного для агента распространителя при подключении к базе данных подписки.
  • [ @post_snapshot_script= ] 'post_snapshot_script'
    Устанавливает указатель на расположение файлов с расширением SQL. Аргумент post_snapshot_script имеет тип nvarchar(255) и значение по умолчанию NULL. Агент распространителя запускает заключительный сценарий после применения сценариев и данных всех реплицируемых объектов во время первоначальной синхронизации. Сценарий выполняется в контексте безопасности, использованного для агента распространителя при подключении к базе данных подписки.
  • [ @compress_snapshot= ] 'compress_snapshot'
    Указывает, что моментальный снимок, записываемый по расположению, указанному аргументом @alt_snapshot_folder, будет сжат в формате Microsoft CAB. Аргумент compress_snapshot имеет тип nvarchar(5) и значение по умолчанию FALSE. Значение false определяет, что моментальный снимок не сжимается, а значение true показывает, что моментальный снимок будет сжат. Нельзя сжать моментальные снимки размером более 2 гигабайт (ГБ). Сжатые файлы моментальных снимков распаковываются в расположении запуска агента распространителя. Со сжатыми моментальными снимками обычно используются подписки по запросу, чтобы сжатые файлы распаковывались на подписчике. Моментальный снимок в папке по умолчанию сжать нельзя.
  • [ @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_subdirctory или отказаться от использования подкаталога, указав значение NULL.
  • [ @ftp_login = ] 'ftp_login'
    Имя пользователя, которое используется для подключения к FTP-службе. Аргумент ftp_login имеет тип sysname и значение по умолчанию ANONYMOUS.
  • [ @ftp_password = ] 'ftp_password'
    Пароль пользователя, который используется для подключения к FTP-службе. Аргумент ftp_password имеет тип sysname и значение по умолчанию NULL.
  • [ @allow_dts = ] 'allow_dts'
    Указывает, что в публикации разрешены преобразования данных. При создании подписки можно указать пакет служб DTS. Аргумент allow_transformable_subscriptions имеет тип nvarchar(5) и значение по умолчанию FALSE, не разрешающее преобразования DTS. Если значение аргумента allow_dts равно true, аргумент sync_method должен быть установлен в значение character или concurrent_c.

    Значение true не поддерживается для издателей Oracle.

  • [ @allow_subscription_copy = ] 'allow_subscription_copy'
    Включает или отключает возможность копирования базы данных подписки, которые подписаны на эту публикацию. Аргумент allow_subscription_copy имеет тип nvarchar(5) и значение по умолчанию FALSE.
  • [ @conflict_policy = ] 'conflict_policy'
    Указывает политику разрешения конфликтов, если используется обновление подписчика посредством очередей. Аргумент conflict_policy имеет тип nvarchar(100) и значение по умолчанию NULL, а также может иметь одно из следующих значений:

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

    pub wins

    Разрешение конфликта в пользу издателя.

    sub reinit

    Повторная инициализация подписки.

    sub wins

    Разрешение конфликта в пользу подписчика.

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

    Если значение равно NULL и публикация является публикацией моментального снимка, политикой по умолчанию становится значение sub reinit. Если значение равно NULL и публикация не является публикацией моментального снимка, политикой по умолчанию становится значение pub wins.

    Не поддерживается для издателей Oracle.

  • [ @centralized_conflicts = ] 'centralized_conflicts'
    Указывает, хранятся ли конфликтующие записи на издателе. Аргумент centralized_conflicts имеет тип nvarchar(5) и значение по умолчанию TRUE. Если значение равно true, конфликтующие записи хранятся на издателе. Если значение равно false, конфликтующие записи хранятся как на издателе, так и на подписчике, вызвавшем конфликт. Не поддерживается для издателей Oracle.
  • [ @conflict_retention = ] conflict_retention
    Указывает срок хранения конфликтной записи в днях. Аргумент conflict_retention имеет тип int и значение по умолчанию 14. Не поддерживается для издателей Oracle.
  • [ @queue_type = ] 'queue_type'
    Указывает, какой тип используется очередью. Аргумент queue_type имеет тип nvarchar(10) и значение по умолчанию NULL, а также может иметь одно из следующих значений:

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

    sql

    Для хранения транзакций используется SQL Server.

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

    По умолчанию указывается значение sql, которое означает, что для хранения транзакций используется SQL Server.

    ms188738.note(ru-ru,SQL.90).gifПримечание.
    Использование службы очередей сообщений (Майкрософт) более не поддерживается. Присвоение значения msmq вызовет предупреждение, и репликация автоматически изменит значение на sql.

    Не поддерживается для издателей Oracle.

  • [ @add_to_active_directory = ] 'add_to_active_directory'
    Этот аргумент устарел и поддерживается только для обратной совместимости сценариев. Больше нельзя добавлять данные публикации в службу Microsoft Active Directory.
  • [ @logreader_job_name = ] 'logreader_agent_name'
    Имя существующего задания агента. Аргумент logreader_agent_name имеет тип sysname и значение по умолчанию NULL. Он указывается только в том случае, если агент чтения журнала будет использовать существующее задание, а не создающееся заново.
  • [ @qreader_job_name = ] 'queue_reader_agent_name'
    Имя существующего задания агента. Аргумент queue_reader_agent_name имеет тип sysname и значение по умолчанию NULL. Он указывается, только если агент чтения очереди будет использовать существующее задание, а не создающееся заново.
  • [ @publisher = ] 'publisher'
    Указывает издателя, не относящегося к SQL Server. Аргумент publisher имеет тип sysname и значение по умолчанию NULL.

    ms188738.note(ru-ru,SQL.90).gifПримечание.
    Аргумент publisher не должен использоваться при добавлении публикации к издателю SQL Server.
  • [ @allow_initialize_from_backup = ] 'allow_initialize_from_backup'
    Указывает, могут ли подписчики инициализировать подписку на эту публикацию из резервной копии, а не из исходного моментального снимка. Аргумент allow_initialize_from_backup имеет тип nvarchar(5) и может иметь одно из следующих значений:

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

    true

    Включает инициализацию из резервной копии.

    false

    Отключает инициализацию из резервной копии.

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

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

    Дополнительные сведения см. в разделе Инициализация подписки на публикацию транзакций без моментального снимка.

  • [ @replicate_ddl= ] replicate_ddl
    Указывает, поддерживается ли для публикации репликация схемы. Аргумент replicate_ddl имеет тип int и значение по умолчанию 1 для издателей SQL Server и 0 для издателей, не являющихся SQL Server. Значение 1 указывает, что инструкции языка DDL, которые выполняются на издателе, реплицируются, а значение 0 обозначает, что инструкции DDL не реплицируются. Репликация схемы не поддерживается для издателей Oracle. Дополнительные сведения см. в разделе Внесение изменений схем в базы данных публикаций.
  • [ @enabled_for_p2p= ] 'enabled_for_p2p'
    Разрешает использование публикации в топологии одноранговой репликации. Аргумент enabled_for_p2p имеет тип nvarchar(5) и значение по умолчанию FALSE. Значение true означает, что публикация поддерживает одноранговую репликацию. Если аргумент enabled_for_p2p имеет значение true, применяются следующие ограничения.

    • Аргумент allow_anonymous должен иметь значение false.
    • Аргумент allow_dts должен иметь значение false.
    • Аргумент allow_initialize_from_backup должен иметь значение true.
    • Аргумент allow_queued_tran должен иметь значение false.
    • Аргумент allow_sync_tran должен иметь значение false.
    • Аргумент conflict_policy должен иметь значение false.
    • Аргумент independent_agent должен иметь значение true.

    Аргумент repl_freq должен иметь значение continuous.

    • Аргумент replicate_ddl должен иметь значение 1.

    Дополнительные сведения см. в разделе Одноранговая репликация транзакций.

  • [ @publish_local_changes_only= ] 'publish_local_changes_only'
    Только для внутреннего использования.
  • [ @enabled_for_het_sub= ] 'enabled_for_het_sub'
    Разрешает публикации поддержку подписчиков, не относящихся к SQL Server. Аргумент enabled_for_het_sub имеет тип nvarchar(5) и значение по умолчанию FALSE. Значение true означает, что публикация поддерживает подписчиков, не относящихся к SQL Server. Если аргумент enabled_for_het_sub имеет значение true, применяются следующие ограничения.

    • Аргумент allow_initialize_from_backup должен иметь значение false.
    • Аргумент allow_push должен иметь значение true.
    • Аргумент allow_queued_tran должен иметь значение false.
    • Аргумент allow_subscription_copy должен иметь значение false.
    • Аргумент allow_sync_tran должен иметь значение false.
    • Аргумент autogen_sync_procs должен иметь значение false.
    • Аргумент conflict_policy должен иметь значение NULL.
    • Аргумент enabled_for_internet должен иметь значение false.
    • Аргумент enabled_for_p2p должен иметь значение false.
    • Аргумент ftp_address должен иметь значение NULL.
    • Аргумент ftp_subdirectory должен иметь значение NULL.
    • Аргумент ftp_password должен иметь значение NULL.
    • Аргумент pre_snapshot_script должен иметь значение NULL.
    • Аргумент post_snapshot_script должен иметь значение NULL.
    • Аргумент replicate_ddl должен иметь значение 0.
    • Аргумент qreader_job_name должен иметь значение NULL.
    • Аргумент queue_type должен иметь значение NULL.
    • Аргумент sync_method не может иметь значение native или concurrent.

    Дополнительные сведения см. в разделе Подписчики, отличные от подписчиков SQL Server.

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

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

Замечания

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

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

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

Разрешения

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

Пример

-- To avoid storing the login and password in the script file, the values 
-- are passed into SQLCMD as scripting variables. 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 @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksProductTran'; 
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login); 
-- This should be passed at runtime.
SET @password = $(Password); 

-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- Execute sp_addlogreader_agent to create the agent job. 
EXEC sp_addlogreader_agent 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Create a new transactional publication with the required properties. 
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_push = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true';

-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;
GO

См. также

Справочник

sp_addlogreader_agent (Transact-SQL)
sp_addpublication_snapshot (Transact-SQL)
sp_changepublication (Transact-SQL)
sp_droppublication (Transact-SQL)
sp_helppublication (Transact-SQL)
sp_replicationdboption (Transact-SQL)
Хранимые процедуры репликации (Transact-SQL)

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

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

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

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

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

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

12 декабря 2006 г.

Новое содержимое
  • Добавлены сведения о новых значениях параметра @sync_method.