Compartir a través de


sp_changesubstatus (Transact-SQL)

Cambia el estado de un suscriptor existente. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.

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

Sintaxis

sp_changesubstatus [ [ @publication = ] 'publication' ]
    [ , [ @article = ] 'article' ]
    [ , [ @subscriber = ] 'subscriber' ]
        , [ @status = ] 'status'
    [ , [ @previous_status = ] 'previous_status' ]
    [ , [ @destination_db = ] 'destination_db' ]
    [ , [ @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 ]
    [ , [ @optional_command_line = ] 'optional_command_line' ]
    [ , [ @distribution_jobid = ] distribution_jobid ]
    [ , [ @from_auto_sync = ] from_auto_sync ]
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @offloadagent= ] remote_agent_activation ]
    [ , [ @offloadserver= ] 'remote_agent_server_name' ]
    [ , [ @dts_package_name= ] 'dts_package_name' ]
    [ , [ @dts_package_password= ] 'dts_package_password' ]
    [ , [ @dts_package_location= ] dts_package_location ]
    [ , [ @skipobjectactivation = ] skipobjectactivation
  [ , [ @distribution_job_name= ] 'distribution_job_name' ]
    [ , [ @publisher = ] 'publisher' ]

Argumentos

  • [ @publication=] 'publication'
    Es el nombre de la publicación. publication es de tipo sysname y su valor predeterminado es %. Si no se especifica el parámetro publication, se verán afectadas todas las publicaciones.

  • [ @article=] 'article'
    Es el nombre del artículo. Debe ser único para la publicación. article es de tipo sysname y su valor predeterminado es %. Si no se especifica article, se verán afectados todos los artículos.

  • [ @subscriber=] 'subscriber'
    Es el nombre del suscriptor cuyo estado se va a cambiar. subscriber es de tipo sysname y su valor predeterminado es %. Si no se especifica subscriber, se cambia el estado de todos los suscriptores al artículo especificado.

  • [ @status =] 'status'
    Es el estado de la suscripción en la tabla syssubscriptions. status es de tipo sysname, no tiene ningún valor predeterminado y puede tener uno de estos valores.

    Valor

    Descripción

    active

    El suscriptor está sincronizado y recibe datos.

    inactive

    Existe una entrada de suscriptor sin que haya una suscripción.

    subscribed

    El suscriptor solicita datos, pero aún no está sincronizado.

  • [ @previous_status=] 'previous_status'
    Es el estado anterior de la suscripción. previous_status es de tipo sysname y su valor predeterminado es NULL. Este parámetro permite cambiar las suscripciones que tengan ese estado en la actualidad, con lo que es posible agrupar funciones en un conjunto específico de suscripciones (por ejemplo, establecer de nuevo todas las suscripciones activas en subscribed).

  • [ @destination_db=] 'destination_db'
    Es el nombre de la base de datos de destino. destination_db es de tipo sysname y su valor predeterminado es %.

  • [ @frequency_type=] frequency_type
    Es la frecuencia con la que se desea programar la tarea de distribución. frequency_type es de tipo int y su valor predeterminado es NULL.

  • [ @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 NULL.

  • [ @frequency_relative_interval=] frequency_relative_interval
    Es la fecha de la tarea 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 estos valores.

    Valor

    Descripción

    1

    Primero

    2

    Segundo

    4

    Tercero

    8

    Cuarto

    16

    Último

    NULL (valor predeterminado)

     

  • [ @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 NULL.

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

    Valor

    Descripción

    1

    Una vez

    2

    Segundo

    4

    Minuto

    8

    Hora

    NULL (valor predeterminado)

     

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

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

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

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

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

  • [ @optional_command_line=] 'optional_command_line'
    Es un símbolo del sistema opcional. optional_command_line es de tipo nvarchar(4000) y su valor predeterminado es NULL.

  • [ @distribution_jobid=] distribution_jobid
    Es el Id. de trabajo del Agente de distribución en el distribuidor de la suscripción cuando se cambia el estado de la suscripción de inactiva a activa. En otros casos, no se define. Si interviene más de un Agente de distribución en una sola llamada a este procedimiento almacenado, el resultado no se define. distribution_jobid es de tipo binary(16) y su valor predeterminado es NULL.

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

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

  • [ @offloadagent= ] remote_agent_activation

    Nota

    La activación remota del agente se ha desaprobado y ya no es compatible. Este parámetro sólo se admite por compatibilidad con versiones anteriores de los scripts. Si se establece remote_agent_activation en un valor distinto de 0, se genera un error.

  • [ @offloadserver= ] 'remote_agent_server_name'

    Nota

    La activación remota del agente se ha desaprobado y ya no es compatible. Este parámetro sólo se admite por compatibilidad con versiones anteriores de los scripts. Si se establece remote_agent_server_name en cualquier valor que no sea NULL, se genera un error.

  • [ @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, en un paquete denominado DTSPub_Package, se especificaría @dts_package_name = N'DTSPub_Package'.

  • [ @dts_package_password= ] 'dts_package_password'
    Especifica la contraseña del paquete. dts_package_password es de tipo sysname y su valor predeterminado es NULL, que especifica que la propiedad de contraseña se dejará sin cambios.

    Nota

    Un paquete DTS debe tener una contraseña.

  • [ @dts_package_location= ] dts_package_location
    Especifica la ubicación del paquete. dts_package_location es de tipo int y su valor predeterminado es 0. Si es 0, la ubicación del paquete es el distribuidor. Si es 1, la ubicación del paquete es el suscriptor. La ubicación del paquete puede ser distributor o subscriber.

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

  • [ @distribution_job_name= ] 'distribution_job_name'
    Es el nombre de la tarea de distribución. distribution_job_name es de tipo sysname y su valor predeterminado es NULL.

  • [ @publisher= ] 'publisher'
    Especifica un publicador que no es de Microsoft SQL Server. publisher es de tipo sysname y su valor predeterminado es NULL.

    Nota

    publisher no debería utilizarse cuando se cambian las propiedades del artículo de un publicador de SQL Server.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

sp_changesubstatus se utiliza en la replicación de instantáneas y transaccional.

sp_changesubstatus cambia el estado del suscriptor en la tabla syssubscriptions por el estado cambiado. Si es preciso, actualiza el estado de los artículos de la tabla sysarticles para que indiquen un estado activo o inactivo. Si es necesario, establece el indicador de replicación en activo o inactivo en la tabla sysobjects de la tabla replicada.

Permisos

Sólo pueden ejecutar sp_changesubstatus los miembros de la función fija de servidor sysadmin, los de la función fija de base de datos db_owner o el creador de la suscripción.