Compartir a través de


sp_attachsubscription (Transact-SQL)

Se aplica a: SQL ServerAzure SQL Database

Adjunta una base de datos de suscripciones existente a cualquier suscriptor. Este procedimiento almacenado se ejecuta en el nuevo suscriptor de la master base de datos.

Importante

Esta característica ha quedado desusada y se retirará en versiones posteriores. Esta característica no se debe usar en el nuevo trabajo de desarrollo. En las publicaciones de combinación en las que se han creado particiones mediante filtros con parámetros, se recomienda utilizar las nuevas características de las instantáneas con particiones, que simplifican la inicialización de un gran número de suscripciones. Para más información, consulte Crear una instantánea para una publicación de mezcla con filtros con parámetros. En el caso de las publicaciones que no tienen particiones, puede inicializar una suscripción con una copia de seguridad. Para obtener más información, consulte Initialize a Transactional Subscription Without a Snapshot.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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' ]
[ ; ]

Argumentos

[ @dbname = ] N'dbname'

Especifica el nombre de la base de datos de suscripciones de destino. @dbname es sysname, sin ningún valor predeterminado.

[ @filename = ] N'filename'

Nombre y ubicación física del archivo de datos principal (.mdf). @filename es nvarchar(260), sin ningún valor predeterminado.

[ @subscriber_security_mode = ] subscriber_security_mode

Modo de seguridad del suscriptor que se va a usar al conectarse a un suscriptor al sincronizarse. @subscriber_security_mode es int, con un valor predeterminado de NULL.

Nota:

Es necesario utilizar Autenticación de Windows. Si @subscriber_security_mode no 1 es (autenticación de Windows), recibirá un error.

[ @subscriber_login = ] N'subscriber_login'

Nombre de inicio de sesión del suscriptor que se usará al conectarse a un suscriptor al sincronizar. @subscriber_login es sysname, con un valor predeterminado de NULL.

Nota:

Este parámetro está en desuso y se mantiene para la compatibilidad con versiones anteriores de los scripts. Si @subscriber_security_mode no 1 está y se especifica @subscriber_login , recibirá un error.

[ @subscriber_password = ] N'subscriber_password'

Contraseña del suscriptor. @subscriber_password es sysname, con un valor predeterminado de NULL.

Nota:

Este parámetro está en desuso y se mantiene para la compatibilidad con versiones anteriores de los scripts. Si @subscriber_security_mode no 1 está y se especifica @subscriber_password , recibirá un error.

[ @distributor_security_mode = ] distributor_security_mode

Modo de seguridad que se va a usar al conectarse a un distribuidor al sincronizar. @distributor_security_mode es int, con un valor predeterminado de 1.

  • 0 especifica la autenticación de SQL Server.
  • 1especifica autenticación de Windows

Siempre que sea posible, utilice la autenticación de Windows.

[ @distributor_login = ] N'distributor_login'

Inicio de sesión del distribuidor que se usará al conectarse a un distribuidor al sincronizar. @distributor_login es sysname, con un valor predeterminado de NULL. @distributor_login es necesario si @distributor_security_mode está establecido 0en .

[ @distributor_password = ] N'distributor_password'

Contraseña del distribuidor. @distributor_password es sysname, con un valor predeterminado de NULL. @distributor_password es necesario si @distributor_security_mode está establecido 0en . El valor de @distributor_password debe tener menos de 120 caracteres Unicode.

Importante

No utilice una contraseña en blanco. Utilice una contraseña segura. Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar las credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.

[ @publisher_security_mode = ] publisher_security_mode

Modo de seguridad que se va a usar al conectarse a un publicador al sincronizar. @publisher_security_mode es int, con un valor predeterminado de 1.

  • Si 0es , especifica la autenticación de SQL Server.
  • Si 1es , especifica la autenticación de Windows. Siempre que sea posible, utilice la autenticación de Windows.

[ @publisher_login = ] N'publisher_login'

Inicio de sesión que se va a usar al conectarse a un publicador al sincronizar. @publisher_login es sysname, con un valor predeterminado de NULL.

[ @publisher_password = ] N'publisher_password'

Contraseña usada al conectarse al publicador. @publisher_password es sysname, con un valor predeterminado de NULL. El valor de @publisher_password debe tener menos de 120 caracteres Unicode.

Importante

No utilice una contraseña en blanco. Utilice una contraseña segura. Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar las credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.

[ @job_login = ] N'job_login'

Inicio de sesión de la cuenta de Windows con la que se ejecuta el agente. @job_login es nvarchar(257), sin ningún valor predeterminado. Esta cuenta de Windows siempre se utiliza para conexiones del agente con el distribuidor.

[ @job_password = ] N'job_password'

Contraseña de la cuenta de Windows con la que se ejecuta el agente. @job_password es sysname, con un valor predeterminado de NULL. El valor de job_password debe tener menos de 120 caracteres Unicode.

Importante

No utilice una contraseña en blanco. Utilice una contraseña segura. Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar las credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.

[ @db_master_key_password = ] N'db_master_key_password'

Contraseña de una clave maestra de base de datos (DMK) definida por el usuario. @db_master_key_password es nvarchar(524), con un valor predeterminado de NULL. Si no se especifica @db_master_key_password , se quita y vuelve a crear una DMK existente.

Importante

No utilice una contraseña en blanco. Utilice una contraseña segura. Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar las credenciales en un archivo de script, proteja el archivo para evitar el acceso no autorizado.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

sp_attachsubscription se usa en la replicación de instantáneas, la replicación transaccional y la replicación de mezcla.

Una suscripción no se puede adjuntar a la publicación si el período de retención de la publicación ha expirado. Si se especifica una suscripción con un período de retención transcurrido, se produce un error cuando la suscripción está asociada o sincronizada por primera vez. Las publicaciones con un período de retención de publicaciones de 0 (nunca expiran) se omiten.

Permisos

Solo los miembros del rol fijo de servidor sysadmin pueden ejecutar sp_attachsubscription.