sp_addpushsubscription_agent (Transact-SQL)

Agrega un nuevo trabajo del agente programado que se utiliza para sincronizar una suscripción de inserción con una publicación transaccional. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.

Nota de seguridadNota de seguridad

Al configurar un publicador con un distribuidor remoto, los valores suministrados para todos los parámetros, incluidos job_login y job_password, se envían al distribuidor como texto simple. Debe cifrar la conexión entre el publicador y su distribuidor remoto antes de ejecutar este procedimiento almacenado. Para obtener más información, vea Cifrar conexiones a SQL Server.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_addpushsubscription_agent [ @publication= ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db = ] 'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_password' ]
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 
    [ , [ @job_name = ] 'job_name' ] 
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @frequency_subday = ] frequency_subday ]
    [ , [ @frequency_subday_interval = ] frequency_subday_interval ]
    [ , [ @active_start_time_of_day = ] active_start_time_of_day ]
    [ , [ @active_end_time_of_day = ] active_end_time_of_day ]
    [ , [ @active_start_date = ] active_start_date ]
    [ , [ @active_end_date = ] active_end_date ]
    [ , [ @dts_package_name = ] 'dts_package_name' ]
    [ , [ @dts_package_password = ] 'dts_package_password' ]
    [ , [ @dts_package_location = ] 'dts_package_location' ]
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]
    [ , [ @distribution_job_name = ] 'distribution_job_name' ]
    [ , [ @publisher = ] 'publisher' ]
    [ , [ @subscriber_provider = ] 'subscriber_provider' ] 
    [ , [ @subscriber_datasrc = ] 'subscriber_datasrc' ] 
    [ , [ @subscriber_location = ] 'subscriber_location' ]
    [ , [ @subscriber_provider_string = ] 'subscriber_provider_string' ] 
    [ , [ @subscriber_catalog = ] 'subscriber_catalog' ]

Argumentos

  • [ @publication =] 'publication'
    Es el nombre de la publicación. publication es de tipo sysname y no tiene ningún valor predeterminado.

  • [ @subscriber =] 'subscriber'
    Es el nombre del suscriptor. subscriber es de tipo sysname y su valor predeterminado es NULL.

  • [ @subscriber_db =] 'subscriber_db'
    Es el nombre de la base de datos de suscripciones. subscriber_db es de tipo sysname y su valor predeterminado es NULL. Especifique un valor de (destino predeterminado) para subscriber_db en un suscriptor que no sea de SQL Server.

  • [ @subscriber_security_mode =] subscriber_security_mode
    Es el modo de seguridad que se utiliza para conectarse a un suscriptor para la sincronización. subscriber_security_mode es de tipo int y su valor predeterminado es 1. 0 especifica la autenticación de SQL Server. 1 especifica la autenticación de Windows.

    Nota de seguridadNota de seguridad

     En el caso de las suscripciones de actualización en cola, utilice la autenticación de SQL Server para las conexiones a los suscriptores y especifique otra cuenta para la conexión a cada suscriptor. Para el resto de las suscripciones, utilice la autenticación de Windows.

  • [ @subscriber_login =] 'subscriber_login'
    Es el inicio de sesión del suscriptor que se utiliza al conectarse a un suscriptor para sincronizar. subscriber_login es de tipo sysname y su valor predeterminado es NULL.

  • [ @subscriber_password =] 'subscriber_password'
    Es la contraseña del suscriptor. Si subscriber_security_mode se establece en 0, el parámetro subscriber_password es obligatorio. subscriber_password es de tipo sysname y su valor predeterminado es NULL. Si se utiliza una contraseña de suscriptor, se cifra automáticamente.

    Nota de seguridadNota de seguridad

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

  • [ @job_login = ] 'job_login'
    Es el inicio de sesión de la cuenta de Windows en la que se ejecuta el agente. job_login es de tipo nvarchar(257) y su valor predeterminado es NULL. Esta cuenta de Windows se utiliza siempre para las conexiones del agente con el distribuidor y para las conexiones con el suscriptor al utilizar la Autenticación de Windows integrada.

  • [ @job_password = ] 'job_password'
    Es la contraseña de la cuenta de Windows con la que se ejecuta el agente. job_password es de tipo sysname y no tiene ningún valor predeterminado.

    Nota de seguridadNota de seguridad

    Cuando sea posible, pida a los usuarios que especifiquen credenciales de seguridad en tiempo de ejecución. Si debe almacenar credenciales en un archivo de script, debe proteger el archivo para evitar el acceso no autorizado.

  • [ @job_name = ] 'job_name'
    Es el nombre de un trabajo del agente existente. job_name es de tipo sysname y su valor predeterminado es NULL. Este parámetro sólo se especifica si la suscripción se va a sincronizar con un trabajo existente en vez de con un trabajo recién creado (opción predeterminada). Si no es miembro de la función fija de servidor sysadmin, debe especificar job_login y job_password cuando especifique job_name.

  • [ @frequency_type = ] frequency_type
    Es la frecuencia con que se programa el Agente de distribución. frequency_type es de tipo int y puede tener uno de los valores siguientes.

    Valor

    Descripción

    1

    Una vez

    2

    A petición

    4

    Diaria

    8

    Semanal

    16

    Mensual

    32

    Relativo mensual

    64 (predeterminado)

    Iniciar automáticamente

    128

    Periódica

    [!NOTA]

    Al especificar un valor de 64, el Agente de distribución se ejecuta en modo continuo. Esto equivale a configurar el parámetro -Continuous para el agente. Para obtener más información, vea Agente de distribución de replicación.

  • [ @frequency_interval = ] frequency_interval
    Es el valor que se va a aplicar a la frecuencia establecida por frequency_type. frequency_interval es de tipo int y su valor predeterminado es 1.

  • [ @frequency_relative_interval = ] frequency_relative_interval
    Es la fecha del Agente de distribución. Este parámetro se utiliza cuando frequency_type se ha establecido en 32 (mensual relativa). frequency_relative_interval es de tipo int y puede tener uno de los siguientes valores.

    Valor

    Descripción

    1 (predeterminado)

    Primero

    2

    Segundo

    4

    Tercero

    8

    Cuarto

    16

    Último

  • [ @frequency_recurrence_factor = ] frequency_recurrence_factor
    Es el factor de periodicidad utilizado por frequency_type. frequency_recurrence_factor es de tipo int y su valor predeterminado es 0.

  • [ @frequency_subday = ] frequency_subday
    Es la frecuencia con la que se vuelve a programar durante el período definido. frequency_subday es de tipo int y puede tener uno de los siguientes valores.

    Valor

    Descripción

    1

    Una vez

    2

    Segundo

    4 (predeterminado)

    Minuto

    8

    Hora

  • [ @frequency_subday_interval = ] frequency_subday_interval
    Es el intervalo de frequency_subday. frequency_subday_interval es de tipo int y su valor predeterminado es 5.

  • [ @active_start_time_of_day = ] active_start_time_of_day
    Es la hora del día de la primera programación del Agente de distribución, con el formato HHMMSS. active_start_time_of_day es de tipo int y su valor predeterminado es 0.

  • [ @active_end_time_of_day = ] active_end_time_of_day
    Es la hora del día en que se detiene la programación del Agente de distribución, con el formato HHMMSS. active_end_time_of_day es de tipo int y su valor predeterminado es 235959.

  • [ @active_start_date = ] active_start_date
    Es la fecha en la que comienza la programación del Agente de distribución, en formato YYYYMMDD. active_start_date es de tipo int y su valor predeterminado es 0.

  • [ @active_end_date = ] active_end_date
    Es la fecha en la que se detiene la programación del Agente de distribución, en formato YYYYMMDD. active_end_date es de tipo int y su valor predeterminado es 99991231.

  • [ @dts_package_name = ] 'dts_package_name'
    Especifica el nombre del paquete de Servicios de transformación de datos (DTS). dts_package_name es de tipo sysname y su valor predeterminado es NULL. Por ejemplo, para especificar el nombre de paquete DTSPub_Package, el parámetro sería @dts\_package\_name = N'DTSPub_Package'.

  • [ @dts_package_password = ] 'dts_package_password'
    Especifica la contraseña necesaria para ejecutar el paquete. dts_package_password es de tipo sysname y su valor predeterminado es NULL.

    [!NOTA]

    Si se especifica el parámetro dts_package_name, es necesario especificar una contraseña.

  • [ @dts_package_location = ] 'dts_package_location'
    Especifica la ubicación del paquete. dts_package_location es de tipo nvarchar(12) y su valor predeterminado es DISTRIBUTOR. La ubicación del paquete puede ser distributor o subscriber.

  • [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'
    Indica si la suscripción se puede sincronizar mediante el Administrador de sincronización de Microsoft. enabled_for_syncmgr es de tipo nvarchar(5) y su valor predeterminado es FALSE. Si es false, la suscripción no se registra con el Administrador de sincronización. Si es true, la suscripción se registra con el Administrador de sincronización y se puede sincronizar sin iniciar SQL Server Management Studio.

  • [ @distribution_job_name = ] 'distribution_job_name'
    Solo se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.

  • [ @publisher = ] 'publisher'
    Es el nombre del publicador. publisher es de tipo sysname y su valor predeterminado es NULL.

  • [ @subscriber_provider= ] 'subscriber_provider'
    Es el identificador de programación único (PROGID) con el que se registra el proveedor OLE DB para el origen de datos que no es de SQL Server. subscriber_provider es de tipo sysname y su valor predeterminado es NULL. subscriber_provider debe ser único para el proveedor OLE DB instalado en el distribuidor. subscriber_provider sólo se admite para los suscriptores que no son de SQL Server.

  • [ @subscriber_datasrc= ] 'subscriber_datasrc'
    Es el nombre del origen de datos según lo entiende el proveedor OLE DB. subscriber_datasrc es de tipo nvarchar(4000) y su valor predeterminado es NULL. subscriber_datasrc se pasa como la propiedad DBPROP_INIT_DATASOURCE para inicializar el proveedor OLE DB. subscriber_datasrc sólo se admite para los suscriptores que no son de SQL Server.

  • [ @subscriber_location= ] 'subscriber_location'
    Es la ubicación de la base de datos según la entiende el proveedor OLE DB. subscriber_location es de tipo nvarchar(4000) y su valor predeterminado es NULL. subscriber_location se pasa como la propiedad DBPROP_INIT_LOCATION para inicializar el proveedor OLE DB. subscriber_location sólo se admite para los suscriptores que no son de SQL Server.

  • [ @subscriber_provider_string= ] 'subscriber_provider_string'
    Es la cadena de conexión específica del proveedor OLE DB que identifica el origen de datos. subscriber_provider_string es de tipo nvarchar(4000) y su valor predeterminado es NULL. subscriber_provider_string se pasa como IDataInitialize o se establece como la propiedad DBPROP_INIT_PROVIDERSTRING para inicializar el proveedor OLE DB. subscriber_provider_string sólo se admite para los suscriptores que no son de SQL Server.

  • [ @subscriber_catalog= ] 'subscriber_catalog'
    Es el catálogo que se utiliza para establecer una conexión con el proveedor OLE DB. subscriber_catalog es de tipo sysname y su valor predeterminado es NULL. subscriber_catalog se pasa como la propiedad DBPROP_INIT_CATALOG para inicializar el proveedor OLE DB. subscriber_catalog sólo se admite para los suscriptores que no son de SQL Server.

Valores de código de retorno

0 (correcto) o 1 (error)

Notas

sp_addpushsubscription_agent se utiliza en la replicación transaccional o de instantáneas.

Ejemplo

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). 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 @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';

--Add a push subscription to a transactional publication.
USE [AdventureWorks]
EXEC sp_addsubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @destination_db = @subscriptionDB, 
  @subscription_type = N'push';

--Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

Permisos

Sólo los miembros de la función fija de servidor sysadmin o la función fija de base de datos db_owner pueden ejecutar sp_addpushsubscription_agent.