sp_attachsubscription (Transact-SQL)

Область применения: SQL Server База данных SQL Azure

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

Внимание

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

[ @dbname = ] N'dbname'

Указывает имя целевой базы данных подписки. @dbname — sysname, без значения по умолчанию.

[ @filename = ] N'filename'

Имя и физическое расположение первичного файла данных (.mdf). @filename — nvarchar(260), без значения по умолчанию.

[ @subscriber_security_mode = ] subscriber_security_mode

Режим безопасности подписчика, используемый при подключении к подписчику при синхронизации. @subscriber_security_mode имеет значение int с значением по умолчаниюNULL.

Примечание.

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

[ @subscriber_login = ] N'subscriber_login'

Имя входа подписчика, используемое при подключении к подписчику при синхронизации. @subscriber_login — sysname с значением по умолчаниюNULL.

Примечание.

Этот параметр устарел и поддерживается для обратной совместимости скриптов. Если @subscriber_security_mode нет 1 и @subscriber_login указана, вы получите ошибку.

[ @subscriber_password = ] N'subscriber_password'

Пароль подписчика. @subscriber_password — sysname с значением по умолчаниюNULL.

Примечание.

Этот параметр устарел и поддерживается для обратной совместимости скриптов. Если @subscriber_security_mode нет 1 и @subscriber_password указана, вы получите ошибку.

[ @distributor_security_mode = ] distributor_security_mode

Режим безопасности, используемый при подключении к распространителю при синхронизации. @distributor_security_mode имеет значение int с значением по умолчанию1.

  • 0 указывает проверку подлинности SQL Server
  • 1указывает проверка подлинности Windows

По возможности используйте аутентификацию Windows.

[ @distributor_login = ] N'distributor_login'

Имя входа распространителя, используемое при подключении к распространителю при синхронизации. @distributor_login — sysname, значение по умолчанию NULL— sysname. @distributor_login требуется, если для @distributor_security_mode задано 0значение .

[ @distributor_password = ] N'distributor_password'

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

Внимание

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

[ @publisher_security_mode = ] publisher_security_mode

Режим безопасности, используемый при подключении к издателю при синхронизации. @publisher_security_mode имеет значение int с значением по умолчанию1.

  • Если 0указывает проверку подлинности SQL Server.
  • Если 1указывает проверку подлинности Windows. По возможности используйте аутентификацию Windows.

[ @publisher_login = ] N'publisher_login'

Имя входа, используемое при подключении к издателю при синхронизации. @publisher_login — sysname с значением по умолчаниюNULL.

[ @publisher_password = ] N'publisher_password'

Пароль, используемый при подключении к издателю. @publisher_password — sysname с значением по умолчаниюNULL. Значение @publisher_password должно быть короче 120 символов Юникода.

Внимание

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

[ @job_login = ] N'job_login'

Имя входа для учетной записи Windows, в которой выполняется агент. @job_login — nvarchar(257), без значения по умолчанию. Для соединения агента с распространителем всегда используется эта учетная запись Windows.

[ @job_password = ] N'job_password'

Пароль для учетной записи Windows, в которой выполняется агент. @job_password — sysname с значением по умолчаниюNULL. Значение job_password должно быть короче 120 символов Юникода.

Внимание

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

[ @db_master_key_password = ] N'db_master_key_password'

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

Внимание

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

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

0 (успешно) или 1 (сбой).

Замечания

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

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

Разрешения

Могут выполняться sp_attachsubscriptionтолько члены предопределенных ролей сервера sysadmin.