sp_attachsubscription (Transact-SQL)

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

Важное примечаниеВажно!

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

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

Синтаксис

sp_attachsubscription [ @dbname = ] 'dbname' 
        , [ @filename = ] 'filename'
    [ , [ @subscriber_security_mode = ] 'subscriber_security_mode' ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_password' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ] 
    [ , [ @distributor_login = ] 'distributor_login' ] 
    [ , [ @distributor_password = ] 'distributor_password' ] 
    [ , [ @publisher_security_mode = ] publisher_security_mode ] 
    [ , [ @publisher_login = ] 'publisher_login' ] 
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 
    [ , [ @db_master_key_password = ] 'db_master_key_password' ]

Аргументы

  • [ @dbname= ] 'dbname'
    Строка, которая указывает целевую базу данных подписки по имени. Аргумент dbname имеет тип sysname и не имеет значения по умолчанию.

  • [ @filename= ] 'filename'
    Имя и физическое расположение первичного файла MDF (файл данных master). Аргумент filename имеет тип nvarchar(260) и не имеет значения по умолчанию.

  • [ @subscriber_security_mode= ] 'subscriber_security_mode'
    Режим безопасности, используемый подписчиком для подключения к нему при синхронизации. Аргумент subscriber_security_mode имеет тип int и значение по умолчанию NULL.

    ПримечаниеПримечание

    Необходимо использовать проверку подлинности Windows. Если аргумент subscriber_security_mode не равен 1 (проверка подлинности Windows), возвращается ошибка.

  • [ @subscriber_login= ] 'subscriber_login'
    Имя входа подписчика, используемое для подключения к нему при синхронизации. Аргумент subscriber_login имеет тип sysname и значение по умолчанию NULL.

    ПримечаниеПримечание

    Данный аргумент является устаревшим и сохранен только для поддержки обратной совместимости скриптов. Если аргумент subscriber_security_mode не равен 1 и указан аргумент subscriber_login, возвращается ошибка.

  • [ @subscriber_password= ] 'subscriber_password'
    Пароль подписчика. Аргумент subscriber_password имеет тип sysname и значение по умолчанию NULL.

    ПримечаниеПримечание

    Данный аргумент является устаревшим и сохранен только для поддержки обратной совместимости скриптов. Если аргумент subscriber_security_mode не равен 1 и указан аргумент subscriber_password, возвращается ошибка.

  • [ @distributor_security_mode= ] distributor_security_mode
    Режим безопасности, используемый для подключения к распространителю при синхронизации. Аргумент distributor_security_mode имеет тип int и значение по умолчанию 0. Значение 0 указывает проверку подлинности SQL Server. Значение 1 указывает проверку подлинности Windows. По возможности используйте проверку подлинности Windows.

  • [ @distributor_login= ] 'distributor_login'
    Имя входа распространителя, используемое для подключения к нему при синхронизации. Аргумент distributor_login является обязательным, если значение distributor_security_mode равно 0. Аргумент distributor_login имеет тип sysname и значение по умолчанию NULL.

  • [ @distributor_password= ] 'distributor_password'
    Пароль распространителя. Аргумент distributor_password является обязательным, если значение distributor_security_mode равно 0. Аргумент distributor_password имеет тип sysname и значение по умолчанию NULL. Значение аргумента distributor_password должно содержать менее 120 символов Юникода.

    Примечание по безопасностиПримечание по безопасности

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

  • [ @publisher_security_mode= ] publisher_security_mode
    Режим безопасности, используемый для подключения к издателю при синхронизации. Аргумент publisher_security_mode имеет тип int и значение по умолчанию 1. Значение 0 указывает проверку подлинности SQL Server. Значение 1 указывает проверку подлинности Windows. По возможности используйте проверку подлинности Windows.

  • [ @publisher_login= ] 'publisher_login'
    Имя входа, используемое для подключения к издателю при синхронизации. Аргумент publisher_login имеет тип sysname и значение по умолчанию NULL.

  • [ @publisher_password= ] 'publisher_password'
    Пароль, используемый при соединении с издателем. Аргумент publisher_password имеет тип sysname и значение по умолчанию NULL. Значение аргумента publisher_password должно содержать менее 120 символов Юникода.

    Примечание по безопасностиПримечание по безопасности

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

  • [ @job_login= ] 'job_login'
    Имя входа для учетной записи Windows, под которой запускается агент. Аргумент job_login имеет тип nvarchar(257) и не имеет значения по умолчанию. Для соединений агента с распространителем всегда используется эта учетная запись Windows.

  • [ @job_password= ] 'job_password'
    Пароль для учетной записи Windows, под которой запускается агент. Аргумент job_password имеет тип sysname и не имеет значения по умолчанию. Значение аргумента job_password должно содержать менее 120 символов Юникода.

    Примечание по безопасностиПримечание по безопасности

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

  • [ @db_master_key_password= ] 'db_master_key_password'
    Пароль определяемого пользователем главного ключа базы данных. Аргумент db_master_key_password имеет тип nvarchar(524) и значение по умолчанию NULL. Если аргумент db_master_key_password не указан, то существующий главный ключ базы данных будет удален и создан повторно.

    Примечание по безопасностиПримечание по безопасности

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

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

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

Замечания

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

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

Разрешения

Процедуру sp_attachsubscription могут выполнять только члены предопределенной роли сервера sysadmin.

См. также

Справочник

Системные хранимые процедуры (Transact-SQL)