Compartir a través de


sp_changesubstatus (Transact-SQL)

Se aplica a: SQL Server Azure SQL Managed Instance

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

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @publication = ] N'publication'

Nombre de la publicación. @publication es sysname, con un valor predeterminado de %. Si no se especifica @publication , todas las publicaciones se verán afectadas.

[ @article = ] N'article'

Nombre del artículo. @article es sysname, con un valor predeterminado de %. Debe ser único para la publicación. Si no se especifica @article , todos los artículos se verán afectados.

[ @subscriber = ] N'subscriber'

Nombre del suscriptor del que se va a cambiar el estado. @subscriber es sysname, con un valor predeterminado de %. Si no se especifica @subscriber , se cambia el estado de todos los suscriptores al artículo especificado.

[ @status = ] N'status'

Estado de la suscripción en la syssubscriptions tabla. @status es sysname y puede ser 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 = ] N'previous_status'

Estado anterior de la suscripción. @previous_status es sysname, con un valor predeterminado de NULL. Este parámetro permite cambiar todas las suscripciones que tengan ese estado, lo que permite agrupar funciones en un conjunto específico de suscripciones (por ejemplo, volver a establecer todas las suscripciones activas en subscribed).

[ @destination_db = ] N'destination_db'

El nombre de la base de datos de destino. @destination_db es sysname, con un valor predeterminado de %.

[ @frequency_type = ] frequency_type

Especifica la frecuencia con la que programar la tarea de distribución. @frequency_type es int, con un valor predeterminado de NULL.

[ @frequency_interval = ] frequency_interval

Valor que se va a aplicar a la frecuencia establecida por @frequency_type. @frequency_interval es int, con un valor predeterminado de NULL.

[ @frequency_relative_interval = ] frequency_relative_interval

Fecha de la tarea de distribución. Este parámetro se usa cuando @frequency_type se establece en 32 (relativo mensual). @frequency_relative_interval es int y puede ser uno de estos valores.

Valor Descripción
1 First
2 Segundo
4 Tercero
8 Cuarta
16 Último
NULL (valor predeterminado)

[ @frequency_recurrence_factor = ] frequency_recurrence_factor

Factor de periodicidad utilizado por @frequency_type. @frequency_recurrence_factor es int, con un valor predeterminado de NULL.

[ @frequency_subday = ] frequency_subday

Especifica la frecuencia, en minutos, para volver a programar durante el período definido. @frequency_subday es int y puede ser uno de estos valores.

Valor Descripción
1 Una vez
2 Second
4 Minute
8 Hora
NULL (valor predeterminado)

[ @frequency_subday_interval = ] frequency_subday_interval

Intervalo de @frequency_subday. @frequency_subday_interval es int, con un valor predeterminado de NULL.

[ @active_start_time_of_day = ] active_start_time_of_day

Hora del día en que la tarea de distribución se programa por primera vez, con HHmmssel formato . @active_start_time_of_day es int, con un valor predeterminado de NULL.

[ @active_end_time_of_day = ] active_end_time_of_day

Hora del día en que la tarea de distribución deja de programarse, con el formato HHmmss. @active_end_time_of_day es int, con un valor predeterminado de NULL.

[ @active_start_date = ] active_start_date

Fecha en que la tarea de distribución está programada por primera vez, con formato .yyyyMMdd @active_start_date es int, con un valor predeterminado de NULL.

[ @active_end_date = ] active_end_date

Fecha en la que la tarea de distribución deja de programarse, con el formato yyyyMMdd. @active_end_date es int, con un valor predeterminado de NULL.

[ @optional_command_line = ] N'optional_command_line'

Símbolo del sistema opcional. @optional_command_line es nvarchar(4000), con un valor predeterminado de NULL.

[ @distribution_jobid = ] distribution_jobid OUTPUT

Identificador de trabajo del Agente de distribución en el distribuidor de la suscripción al cambiar el estado de la suscripción de inactivo a activo. En otros casos, no se define. Si hay más de una Agente de distribución implicada en una sola llamada a este procedimiento almacenado, el resultado no se define. @distribution_jobid es un parámetro OUTPUT de tipo binary(16).

[ @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 = ] offloadagent

Este parámetro está en desuso y se mantiene para la compatibilidad con versiones anteriores de los scripts. Establecer @offloadagent en un valor distinto de 0 genera un error.

[ @offloadserver = ] N'offloadserver'

Este parámetro está en desuso y se mantiene para la compatibilidad con versiones anteriores de los scripts. Establecer @offloadserver en cualquier valor que no sea NULL genera un error.

[ @dts_package_name = ] N'dts_package_name'

Especifica el nombre del paquete de Servicios de transformación de datos (DTS). @dts_package_name es sysname, con un valor predeterminado de NULL. Por ejemplo, para un paquete denominado DTSPub_Package especificaría @dts_package_name = N'DTSPub_Package'.

[ @dts_package_password = ] N'dts_package_password'

Especifica la contraseña del paquete. @dts_package_password es nvarchar(524), con un valor predeterminado de NULL, que especifica que la propiedad password debe dejarse 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 int, con un valor predeterminado de 0.

  • Si 0es , la ubicación del paquete está en el distribuidor.
  • Si 1es , la ubicación del paquete está en 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 = ] N'distribution_job_name'

Nombre del trabajo de distribución. @distribution_job_name es sysname, con un valor predeterminado de NULL.

[ @publisher = ] N'publisher'

Especifica un publicador que no es de SQL Server. @publisher es sysname, con un valor predeterminado de NULL.

@publisher no se debe usar al cambiar las propiedades del artículo en un publicador de SQL Server.

[ @ignore_distributor_failure = ] ignore_distributor_failure

Solamente se identifica con fines informativos. No compatible. La compatibilidad con versiones posteriores no está garantizada.

Valores de código de retorno

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

Comentarios

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

sp_changesubstatus cambia el estado del suscriptor de la syssubscriptions tabla con el estado cambiado. Si es necesario, actualiza el estado del artículo en la sysarticles tabla para indicar activo o inactivo. Si es necesario, establece la marca de replicación activada o desactivada en la sysobjects tabla para la tabla replicada.

Permisos

Solo los miembros del rol fijo de servidor sysadmin , db_owner rol fijo de base de datos o el creador de la suscripción pueden ejecutar sp_changesubstatus.